Sep 29 2005
Źródła do pobrania
Filed under Ogólne by Łukasz Dywicki
Pragmatyzm kontrolowany
Some of posts from this blog has been moved to dywicki.pl. You will be automatically redirected to new blog if you would submit comment.
New posts are published on dywicki.pl, this blog contains old content and it is not continued.
Niektóre posty z tego bloga zostały przeniesione do dywicki.pl. Zostaniesz automatycznie przekierowany jeśli bedzięsz chciał dodać komentarz.
Nowe posty sa publikowane na dywicki.pl, ten blog zawiera stare treści i nie jest kontynuowany.
Sep 29 2005
Filed under Ogólne by Łukasz Dywicki
Nieźle. Podoba mi się – prostota i elegancja ;) Nie miałem zbytnio czasu, żeby przejrzeć źródła, więc na poczatek dam tylko 2 małe uwagi.
Kod (w pliku Tokenizer.php):
sort($classes);
$phpCode = "<?php\n\$map = array(";
foreach ($classes as $k => $v) {
$phpCode .= "\n\t".’\”.$v[0].’\’=>\” . $v[1] . ‘\’,’;
}
$phpCode .= ");\n ?>";
Pętlę foreach zastąpiłbym innstrukcją var_export().
Plik Filter.php:
function doPreProcessing(Request &$request,Response &$response) {
Po co te referencje?
Co do Daerona to nie mam pojęcia skąd się bierze komunikat o błędzie tabeli ipb.sessions. Nie przypominam sobie, żebym gdzieś w kodzie korzystał z tabel IPB… Poza tym błąd teoretycznie jest wywalany w linii 86 w pliku index.php, a ta linia jest pusta…
W ten weekend będę dłubał jeszcze przy skrypcie, więc postaram się jak najszybciej opublikować nową wersję i postawić na niej swojego bloga, więc zobaczysz jak to wyglądać będzie na żywca ;)
Tokenizer – to czysta przeróbka kodu Beli.
A referencje jakoś tak mi się wstawiły. Obsługę filtrów kończyłem pisać wczoraj wieczorem więc nie miałem czasu przeanalizować ani poprawić. : )
No a Daeron chyba od jakiegoś czasu się nie ruszył?
Ruszył, ruszył. Idzie bardzo powoli, ale idzie :) Efekty już widać.
1. HashMap, który udaje, że nie jest głupią tablicą asoscjacyjną.
2. Używanie stałych. Nie lepiej używać const czy czegoś podobnego?
3. Co robią klasy Request i Response w FilterManagerze ;)
4. ‘ValidatorConfig’ => ‘%PSF_WEBAPP_PATH%/Modules/%MODULE_NAME%/Validator/%ACTION_NAME%.Validator.xml’,
Na sztywno definiujesz ścieżki to raz. Dwa, co jak nie chce validatora.
5. Przy każdym ConfigMaganer::get, jest wywolywana metoda init z regexpem…
6. Wymuszasz płaski konfig, co nie zawsze jest dobre. Jedno zagniezdzenie znaczy sie.
7. Po za tym widzę tam gdzieś brzydkiego globalka w autoloadzie ;P
No to byłoby na tyle, z okazji, że kodu mało, nie czepiam się dużo :D
1. Zgadza się HashMap był pisany po to, żeby sprawdzić, jak się sprawuje SimpleTest ;)
2. A stałe pojawiają się w Config.php, bo lepszego sposobu nie znam.
3. Request i Response nie istnieje stąd wylądowały tylko samo class, żeby przykład się uruchamiał.
4. Validator będzie używany w zależności od konfiguracji akcji. A ścieżki są na stałe, żeby się nie pałętały wszędzie pliki konfiguracyjne. Celowo narzucam takie rozwiązanie.
5. Metoda init została udostępniona publicznie i przeniesiona do klasy Framework. I zamiast foreacha jest array_walk :)
6. Płaski config, co to znaczy? Wersja wygenerowana z XMLa jak i z INI wygląda tak samo (co prawda jest problem z funkcją od DOMa, ale to na razie nie jest priorytet)
7. GLOBAL po to, żeby przyśpieszyć działanie. Wykonywanie za każdym razem w __autoload require_once lub include_once mogłoby troszkę spowolnić całość.
Boję się publikować większej ilości kodu :D
witam kolege ktorego juz nie zobacze w pracy :(, mialem chwilke czasu wiec spojrzalem (niestety bardzo krotko) na framework, jak wiesz specjalista od php nie jestem, ale widze nawiązania do mojego języka czyli javy :), wg mnie niepotrzebna klasa HashMap po co? żeby ściągnąć z javy ;), co do klas configa wykorzystanie fabryki dyskusyjne (wzorzec fabryka troche w innej sytuacji sie stosuje), chociaż może być (po za tym klasa fabryki nie powinna być abstrakcyjna) i nazwał bym metodę createConfigParser lub podobnie a nie get w końcu to fabryka, też mam wątpliwości jak bela_666 ciekawe czemu 666 ;) co do sztywno definiowania sciezek w Config Managerze, ale jak tak chcesz to twoj wybor, jesli chodzi o filtry czesto wykorzystuje w jsp i serwletach to naprawde potezne narzedzie, wyglada to ciekawie i jesli uda ci sie zaimplementowac funkcjonalnosc podobna jak w javie uwierz mi ze bedziesz mogl je wykorzystac w wielu projektach, nie tylko tym frameworku, pozdrowionka
galandiera, 666 jest bo nie mogłem założyć maila pod tytułem bela, więc dopisałem co nie co ;) absolutnie nie ma to związku z muzyką, religią etc
abstrachując od cyferek, w javie masz o tyle fajnie, że filtry są ustandaryzowane, są klasy javax.servlet.Filter, a w php jak wszedzie w tym języku standardów nie ma, a jeszcze gorsze jest to że nie ma namespace’ow ;]
ja dzisiaj zacząłem się bawić nimi, o to efekt: phpfi.com/80668
dam na blogu jak dns powstanie
galandiera = Arek? :]
Co do fabryki – jej zastosowanie jest zgodne z definicją- służy do tworzenia rodziny obiektów. A configi załatwię nieco inaczej, w krótce powiem jak. No a tak btw. to nie moge nic w chacie robić bo mi się hasło pojawiło i zalogować do systemu sie nie moge! :( No, ale – będę wiedział na przyszłość.