Jak się dobrać do stałej klasy

Mały konkursik - jak pobrać stałą z klasy..? Kod jest, jedyny problem to to, że nazwa stałej może się zmienić… [php]< ?php class Foo { const TAK = ‘prawda’; const NIE = ‘fałsz’; const CHGW = ‘a kto go tam wie’; } if($_GET[‘imie’] == ‘Bolek’) { // $constant = ‘TAK’; } elseif(!empty($_GET)) { // $constant = ‘NIE’; } else { // $constant = ‘CHGW’; } echo ‘… wlasnie co ? ..’; ?>[/php] ...

June 27, 2006 · 1 min · splatch

Rapid application development for PHP

Dzisiaj, przed chwilą, całkiem przypadkowo zajrzałem na devzone (chyba najwyższa pora zacząć subskrybować rss) - a tam, na stronie bardzo ciekawy tekst, który tylko przejrzałem, a pod którym rozgorzała dyskusja. Dziewięć komentarzy na devzone to rzadkość tak samo jak na tym blogu ;). Oto rzecz, która sprowokowała dyskusję: Dipping a toe into rapid application development for PHP a tyczy się ona prezentacji możliwości pewnego programu: PHP Blox demo

May 7, 2006 · 1 min · splatch

View Layout i Agavi

Zainspirowany ideą Layotów w M4 postanowiłem stworzyć małą wtyczkę do agavi, która umożliwi mi korzystanie z tego rozwiązania. Jest ona bardzo prosta i ułatwia masową zmianę szablonu głównego oraz slotów (o slotach jeszcze będę pisał).

May 5, 2006 · 2 min · splatch

Zend Framework i Propel

Zend nabiera tempa. Po wpinaniu do ZF smarty przyszła kolej i na Propela. Artykuł o tym znajdziecie na Zend Developer Zone. Zainteresowani zapewne się znajdą. :)

April 27, 2006 · 1 min · splatch

Mojavi 4, z bliska.

Tak jak obiecałem informacje na temat zmian w Mojavi 4. Mojavi jest jednym ze starszych frameworków dla PHP. Swoje korzenie ma jeszcze w PHP4 kiedy to powstała pierwsza (na chwilę obecną), ostatnia stabilna wersja – Mojavi 2.0. Po wejściu PHP5 okazało się, że M2 nie jest kompatybilne z nowym interpreterem. Zaczęło powstawać Mojavi 3. Istnieje również Yuma – Mojavi 2 zgodne z PHP5. W pewnym momencie grupa (a właściwie jedyna osoba) tworząca Mojavi zdecydowała, że projekt jest nienajlepszy. Mimo wszystko była to tylko kontynuacja M2, bez wykorzystania możliwości PHP5, oparta na klasach. M3 zostało wstrzymane a Sean Kerr (na forum illusina) zaczął tworzyć Mojavi 4. M3 utkęło w fazie DEV. Mimo wszystko framework jest bardzo stabilny, sam z niego korzystałem kilka razy i nie było problemów. Wszystko czego potrzeba było to tylko kilka komponentów, które można pobrać z sieci (między innymi SmartyView). Aby praca włożona w M3 nie poszła na daremne projekt przejął Tyler Tompkins. Tak powstało Agavi. Agavi oferuje dodatkową funkcjonalność, usuwa niektóre problemy z Mojavi (min. problem z nazwami klas), oferuje również wbudowane komponenty, których brakowało Mojavi: - SmartyView - XSLTView - CreoleDatabase - PropelDatabase - AdoDBDatabase - PDODatabase - ukończony mechanizm logowania - zaczątki modelu (na forum Agavi jest do pobrania ActiveRecord rodem z Cake/Rails) - ReturnArrayConfigHandler - ConsoleController - ConsoleRequest - HTTPSRequest - CreoleStorage - wsparcie dla Phinga – taski do tworzenia projektu, modulu, akcji, widoku, unit-testów). - bodajże DateValidator - FormPHPView (ma być w krótce usunięty).

April 25, 2006 · 4 min · splatch

Zend Manual.

Manual do Zend Frameworka, zajrzałem tam dopiero dzisiaj, ale dobrze wiedzieć, że jest jakaś biblioteka do PDF, która ma dokumentacje na dobrym poziomie. Jeśli zend będzie prowadził dokumentacje w taki sposób ma spore szanse na to by pobić konkurencje. Manual znajdziecie pod adresem http://framework.zend.com/manual Dokumentacja do Zend_PDF.

April 24, 2006 · 1 min · splatch

Eclipse PHP IDE, bez udzialu PHP Eclipse

Przeczytałem właśnie, że Zend nie dogadał się ze społecznością tworzącą PHP Eclipse i cały projekt będzie rozwijany od nowa. Jak napisał Lester Caine: Jedynym powodem dla ktorego PHP Eclipse nie moze stac sie podstawa jest fakt, ze nie mamy czasu ani zasobow by zaglebiac sie w dokumentacje. Nie zdołalismy przekonać społeczności PHPEclipse że podejście Zenda bylo lepsze. Powiedzieli, że powinniśmy się dołączyć do ich projektu. Wygląda to bardziej na zagarnięcie niż konstruktywne programowanie. Dziękuję Tasmanowi za pomoc w tłumaczeniu. :) ...

March 10, 2006 · 2 min · splatch

Eclipse PHP IDE

Warto zaznaczyć, że projekt jest już zatwierdzony, i chyba będzie tworzony w ramach IDE, które miało powstać dla ZF. Jak niosą wieści: Jest idea stworzenia open-source’owego IDE dla PHP opartego na platformie Eclipse Tools. Dalej - PHP zaczęto rozwijać 10 lat temu jako projekt open-source. W ciągu 10 lat PHP zyskało popularność. Obecnie ponad 23 miliony domen korzysta z PHP. Prostota PHP oraz fakt iż jest bezpłatne sprzyja jego adaptowaniu. Projekt powinien być rozwijany jako wstępny plugin. Z czasem powinny powstawać kolejne pluginy wykorzystujące API Eclipse by rozszerzać funkcjonalność IDE. Projekt powinien być wpięty w rozszerzenia, docelowa funkcjonalność to tworzenie (developing), rozwijanie (deploying), dokumentowanie, debugging oraz testowanie. ...

March 9, 2006 · 2 min · splatch

Jak widzę kod?

Tak pod wpływem natchnienia publikuję przykład diagramu klas reprezentujący kompozycje (zawieranie). Diagram wykonany w programie Visual Paradigm. Komentarz usunięty ponieważ zachodził na klasy. :) Kod (PHP): <php class Jablon { /** *@var Jablko owoce znajdujace sie na drzewie **/ protected $owoce = array(); } class Jablko { /** *@var mixed smak owocu **/ protected $smak; } > Związek jest określony - jedna instancja klasy Jablon może zawierać wiele owowców, ale może tych owoców nie być wcale. Zapis można sprecyzować: Jablon: 1..n, Jablko 1 oznacza, że jedna instancja klasy Jablko moze znajdowac się tylko w jednym obiekcie Jablon. Jeśli się mylę, proszę o sprostowanie. Za jakiś czas kod w wersji dla Javy. ;) ...

February 28, 2006 · 1 min · splatch

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