Dziś jest piątek, 25 lipca 2008 roku (z kalendarza...)

OPTv2 do ściągnięcia

Icon

08.01.2008, 09:27

Projekty

Komentarze (5)

Powrót

Przygotowałem właśnie pierwszą paczkę z wersją rozwojową OPT 2.0.0. Nie jest ona przeznaczona do użytku produkcyjnego, gdyż nie jest zaimplementowane jeszcze całe mnóstwo opcji i funkcjonalności, ale mniej więcej pokazuje już, jak to wszystko będzie wyglądać po zmontowaniu. Do paczki, oprócz biblioteki, dołączyłem też dwa gotowe unitTesty (wyrażenia oraz API), ukończoną część polskiej dokumentacji i kilka skryptów developerskich do testowania różnych elementów. W tym wypadku mowa tu o sekcjach, instrukcjach warunkowych, kompilacji prologu oraz obsłudze błędów.

Skoro przy obsłudze błędów jesteśmy... widziałem w internecie narzekania na sposób, w jaki realizuje ją pierwsza wersja biblioteki. Dlatego zreorganizowałem sposób dołączania informacji debugowych, nad którymi programista ma teraz większą kontrolę, dzięki czemu środowiska produkcyjne raczej nie powinny w razie czego ujawniać informacji, które mogłyby zaszkodzić serwisowi. Powstanie błędu anuluje także cały wygenerowany dotąd kod HTML, przez co komunikat nie pokazuje się nie wiadomo gdzie, wymieszany ze wszystkim, co znajdzie się w pobliżu. Razem z eXtremem zadbaliśmy też o stronę wizualną i efekt można podziwiać w postaci trzech specjalnie przygotowanych skryptów testowych służących właśnie do prac nad błędami.

Ostatecznie zdecydowałem się wydać nowe OPT na trzeciej wersji licencji LGPL. Dla tych, którym ona z jakiegoś powodu nie odpowiada, myślę nad jakąś alternatywą. Na pewno nie dam żadnych liberalnych licencji, ponieważ niezbyt bym się ucieszył, gdybym zobaczył, że ktoś dodał parę głupot i sprzedaje mój kod jako oprogramowanie własnościowe (ten sam los spotkał kiedyś Wine, co było przyczyną zmiany jego licencji). Co prawda taką sprzedaż średnio bym widział, ale...

Powrót

Komentarze

Napisał Bob w wtorek, 8 stycznia 2008 o 13:48

A jest możliwość hurtowego wysyłania nagłówków? Coś w stylu addHeader() które oprócz Content-type zbierałoby w tablicy zdefiniowane nagłówki i dopiero podczas poprawnego wygenerowania całości razem wysłało? Czy dałoby radę napisać OPT na styl Zend Framework który daje świetną przejrzystość i łatwość dołączania bibliotek?

Napisał Zyx w wtorek, 8 stycznia 2008 o 14:31

Hmmm... OPT sam z siebie wysyła tylko Content-type, ale pomysł mi się podoba. Bufor nagłówków nie powinien być trudny do zrobienia, a że nowa wersja ma uporządkowaną obsługę buforowania wyjścia, także ich wysłanie nie powinno stanowić problemu.

Ad. ZF - jak ktoś nakładkę zrobi, to tak. Zresztą, cała trudność w zintegrowaniu OPT z ZF to zrobienie jednego require i utworzenie obiektu. Dlatego nie widzę specjalnie powodu, dla którego nawet nakładka jest potrzebna. Tym bardziej nie będę wewnętrznej budowy biblioteki do ZF dopasowywać z paru powodów:
1. Biblioteka byłaby rozparcelowana na 125 plików i 37 katalogów na trzech poziomach głębokości. Jest wyraźnie widoczna różnica w wydajności, jeżeli załączana rzecz jest umieszczona w jednym większym, a nie trzech mniejszych plikach. Albo rybki, albo akwarium.
2. Zmiana nazewnictwa, konieczność wpasowania się w wymogi ZF, jeśli chodzi o przepływ danych i inne sprawy... wewnętrzne mechanizmy biblioteki specjalnie mają uproszczone to wszystko, aby nie marnować czasu na zbędne głupoty. Do tego jakiś domyślny autoloader by się przydał dla tych, którzy nie korzystają z ZF.
3. OPT z założenia ma być niezależny od czegokolwiek.

Napisał coldpeer w wtorek, 8 stycznia 2008 o 14:56

A ja mam pytanie, czy OPT obsługuje już dziedziczenie szablonów?

Napisał Bob w wtorek, 8 stycznia 2008 o 16:43

Bardziej miałem na myśli coś bardziej prozaicznego czyli uporządkowanie ścieżek do includów/require tak żeby można było przegrać pliki do jakiegoś katalogu, ustawić include_path i jazda. Czyli głównie wyrzucenie OPT_DIR. Załóżmy że mam ini_set('include_path', '.:library/Opt/:library/Opd/:library/Zend/'); Przez OPT_DIR szuka pod złym katalogiem, jest problem z obsługą pluginów etc. To samo z OPD. Niby to drobnostka a jednak nie można być pewnym czy się wszystko poprawiło.

A co do nagłówków. Byłoby super gdybyś to uwzględnił bo gdy silnik obsługuje niezależnie buforowanie mogą być problemy zwłaszcza przy błędach. A kodu kilka linijek.

Napisał Zyx w wtorek, 8 stycznia 2008 o 17:04

Aaa, o to chodzi. Dobra - zrobiłem, aby w przypadku nieustawienia stałej OPT_DIR przypisywało jej pustą wartość, dzięki czemu można swobodnie z include_path korzystać, jeśli ktoś chce. Osobiście preferuję ścieżki bezwzględne (i nie bez powodu - wydajność!), ale w sumie pusta wartość będzie nawet bardziej przydatna, niż to, co jest teraz :).

Coldpeer -> Funkcjonalność identyczna z dziedziczeniem jest już w OPT 1.x -> instrukcje bind + insert + include:

{*szablon glowny *}
 
<h2>Treść:</h2>
 {insert name="tresc"}
<h2>Koniec Treści</h2>


{* szablon "dziedziczacy" *}
{bind=tresc}
<p>To jest treść</p>
{/bind}
 
{include='body.tpl'}


W OPT 2.0.0 również takie coś będzie, co najwyżej nazewnictwo uporządkuję.

Strona 1 z 1 :: 1

Skomentuj

NickInformacja
E-mailTylko do użytku wewnętrznego.
WWWNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki
Internauto, pamiętaj! Wolność to nie samowola - dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2008 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia