Tworzenie nowej instancji klasy...

Nie wiem jak Wy, ale ja kilka razy spotkałem się z sytuacją, że chciałem przekazać do konstuktora kilka argumentów, ale niestety urocze call_user_func_array nie daje takiej możliwości. Dlatego też w PSF musiałem wynaleść takie coś jak interfejs LazyService by móc tworzyć usługi doiero w chwili ich wywołania. Sam sposób nie jest najleszy. Teraz, po niewczasie znalazłem sosób na to, sposób bardzo prosty, który nie wymusza użycie eval - swoją drogą kolejny dowód na to, że bez eval da się żyć :) - oto on: $r = new ReflectionClass('ClassName'); $r->newInstance(1,2,3); ...

February 27, 2006 · 1 min · splatch

Why not Zend Framework?

Patrząc na to co się dzieje wokół ZFa odnoszę bardzo negatywne wrażenie. Dlaczego? Dlatego, że jest to powielanie tego, co już powstało dla PHP. Nie widzę w tym, co proponuje Zend nowości, świerzości. Wiem, że trudno o to przy implementacji MVC, ale ZF nic nie wnosi do tematu, do tego bardzo skromne informacje jakie są na temat ZF nie napawają optymizmem. Powody dla których Zend tworzy kolejnego frameworka: zachowanie konkurencyjności względem innych języków i platform .NET, J2EE, Ruby brak prostego frameworka dla PHP swobodne użycie dla zastosowań e-commerce pełne wykorzystanie możliwości PHP5 wsparcie dla nowoczesnych technologii - Web Services, RSS, wsparcie dla AJAXa Moje uwagi ...

February 23, 2006 · 7 min · splatch

mod_rewrite plus zmienne z GET

Dzisiaj miałem nietypowy problem - chciałem stworzyć sobie obsługę mod_rewrite ale nie babrać się z wyciąganiem zmiennych które był w żądanym adresie, dlatego też udałem się do google.pl w poszukiwaniu dodatkowych flag, które można ustawiać. Znalazłem bardzo fajną stronkę z kartą podręczną do mod_rewrite - http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/ jest ich tam więcej - css, php, javascript, html, mysql. A moje rozwiązanie wygląda w następujący sposób: RewriteEngine On RewriteBase /z-tego-adresu/ RewriteCond %{REQUEST_URI} !^.*\.(css|png|gif|jpe?g|php|js)$ RewriteRule ^.*$ /z-tego-adresu/index.php?%{REQUEST_URI} [QSA,L] Oczywiście wymaga dotarcia i obsługi w kodzie, ale GET jest bez zmian.. i to najważniejsze :) ...

February 21, 2006 · 1 min · splatch

PHPOutOfRangeException

Po dłuższym zastanowieniu - zdecydowałem się na zrezygnowanie z prowadzonych do tej pory projektów, także framework i draft templatów można uznać za zawieszone na czas nieokreślony. Chcę spróbować czegoś nowego, czegoś lepszego - biorę się za javę.

February 20, 2006 · 1 min · splatch

WACT żyje!

Dzisiaj postanowiłem przyjrzeć się bliżej szablonom z WACTa. Pamiętam, że jakiś czas temu przyglądałem się kompilatorowi, ale.. było to kilka tygodni temu. Aby nie być w tyle postanowiłem zaciągnąć zmiany z CVSa. Jakież było moje zdziwienie kiedy zobaczyłem w kodzie interfejsy! Od razu powędrowałem do webloga. Byłem ogromnie zaskoczony tym, co się dzieje z WACTem, byłem święcie przekonany, że ten projekt jest martwy - tym bardziej, że są pliki i katalogi nie ruszane od 2 lat. Najnowsze zmiany jakie udało mi się znaleść są sprzed dwóch dni.. WACT ze względu na świetne, komponentowe szablony to dla mnie obok Mojavi jeden z lepszych frameworków. Panowie, czyżby WACT miał odżyć? :) ...

February 19, 2006 · 1 min · splatch

Proste testy:

Rozmawiałem wczoraj z Zyxem na temat testów czasowych i dowiedziałem się, że korzysta on do tego celu z apache benchmark - nie zwlekając również wykonałem testy… Pomiary wykonane przy użyciu apache benchmark (apache 2.0.53, php 5.1.1) dla 500 requestów. Odczyt pliku 70 KB file+implode: 5.640589 s file_get_contents: 2.562484 s Frameworki: CakePHP (z warrningiem dot. połączenia mysql): 76.421385 s Mojavi 3.0-dev (debug_mode = off): 63.155846 s Agavi 0.10-stable (debug_mode = off): 51.187172 s PSF: 46.390328 s (bez cache configa etc) Prado 2.0.1 (też Hangman): 169.14543 s Prado 3.0-alpha (Samples.Hangman.Home): 196.279994 s Odin: 28.499818 s Phiend: 11.359303 s (gołe hello world) Daeron: 1.156242 s Pinky: 53.843750 s ...

February 14, 2006 · 1 min · splatch

Pustka

Tak.. minął miesiąc od ostatniego wpisu. Jak ten czas leci. Już 1/12 roku za nami.. Czym jest spowodowany brak notek na blogu od miesiąca? Rozterkami. Mam poważny dylemat czy dalej skupić się na PHP czy przejść na javę? PSF stoi w miejscu, no może nie - rozgrzebałem kod próbując zaimplementować akcje jako ApplicationController-y i mechanizm View Resolverów (obydwie idee zaczerpnięte ze springa, acz uproszczone na potrzeby PHP). W chwili obecnej wiszę w próżni niepewności szarpany uczuciami - miłością do pierwszego języka i porządaniem możliwości jakie daje Java. Które z nich zwycięży? Co do PSF - powiem tak. Nie piszę go tylko dla siebie, chcę by to był nie za duży, szybki framework do małych, ewentualnie średnich zastosowań i dlatego zwracam się z prośbą do osób, które to miejsce odwiedzają a chciałby wspomóc przy tworzeniu projektu (PSF = Personal Site Framework). Mam do dyspozycji repozytorium SVN, Traca oraz konto na którym można zaparkować domenę (tą z kolei skłonny jestem zakupić..). Po prostu - szukam osób które chcą się dołączyć do projektu i stworzyć na prawdę dobry kawałek kodu. Jeśli ktoś jest zainteresowany współpracą mój numer gg to “8 5 6.3,4.2:4” (zostaw same cyfry) a jid splatch@wafel.com. Mail “lukasz@d y w i c k i . pl” ...

January 23, 2006 · 1 min · splatch

Repozytorium SVN

Framework, który usiłuję pisać można pobrać z svn://ivpro.net/PSF. Kod jest przepisywany na nowo, ponieważ zmieniła się nieco koncepcja :). Lista zmian: - Przesunięcie tablicy z mapą ConfigManager::$map do oddzielnej klasy ConfigMapper (dziedziczącej klasy abstrakcyjnej Mapper, pakiet Mapper) opartej na singletonie. - Dodanie nowej klasy konkretnej - ConfigProperties, która parsuje config przy pomocy parse_ini_file. Zastosowanie w sam raz do tworzenia plików językowych. Z tego rodzaju configu nie można uzyskać struktury takiej jak w pliku XML. - Przesunięcie funkcji do obsługi tablic do klasy ArrayUtil w pakiecie Util. - Zlikwidowanie pakietu AutoLoad i przeniesienie go częściowo do pakietu Util (część AutoLoad powędrowała do pl.splatch.BuildTool jako task Phinga). - Nowy pakiet - Dispatcher (jak narazie bez wyraźnego podziału na klasy do obsługi widoku, requestu) służący do wykonywania forwardów jak i redirectów. - Dodanie “warstwy usług” - nowy pakiet - Service (jeśli zajdzie potrzeba powstanie również Service.Activator). - Wprowadzenie większej liczby interfejsów w miejsce dziedziczenia z klas abstrakcyjnych. I jeszcze pare innych kosmetycznych poprawek… ...

December 23, 2005 · 1 min · splatch

PHP6 bo miały być wielkie zmiany ...

Oto co zrozumiałem z http://www.php.net/~derick/meeting-notes.html. Nie jest to tłumaczenie a moja interpretacja, a jako, że znam angielski gorzej niż źle błędów może być bardzo wiele. W sumie bardzo nawet bym tego chciał, bo z tego co przeczytałem zmian jest na prawde mniej niż można by było się spodziewać.

December 20, 2005 · 6 min · splatch

PHP6 - krok 1

No… rozpoczynamy testowanie …. … i kończymy, bo namespace {} powoduje parse error…

December 13, 2005 · 1 min · splatch