![]() |
1. Posty w tym forum są poddawane moderacji więc nie dodawaj ich kilka razy.
2. Akceptujemy tylko wartościowe wiadomości o php lub pochodnych
3. Publikacja newsa na wortalu po moderacji oscyluje w granicach 30min
4. Wstawiane grafiki powinny mieć maksymalną szerokość 357px
Zapraszamy do uzupełniania wortalu o ciekawe informacje :)
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Dziś ukazała się nowa wersja popularnego frameworka dla programistów php Spawn Framework o numerze 1.2.6.
Najważniejsze zmiany: Nowa klasa - sf_translate ! Dodane nowe metody dla sf_acl: * inherit($name, $inherit) * getGroupRole($name) * getRole() * removeGroupRole($name, $role) * removeGroup($name) * removeRole($name) * getGroup() * groupIsset($name) Modyfikacja sf_auth - dodanie nameIsset(), rozbudowa konfiguracji. sf_db , sf_orm - dodanie getParam() sf_view - dodanie replace(). Dodatkowo - optymalizacja kodu, poprawa kilka niedociągnięć :-) Najnowszą wersję można pobrać z http://spawnframework.com/download |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No i nadeszła chwila prawdy (IMG:style_emoticons/default/tongue.gif)
Na początek przyznam, że nie czytałem dokumentacji. Skupiłem się tylko i wyłącznie na kodzie, poprawności napisania, łatwości użytkownika, szukania pułapek dla programisty. Zaczynamy: - Jaka jest różnica między plikami .phtml a .html w szablonach? Dlaczego nie może być jednego rozszerzenia? - Takie coś robi się za pomocą .htaccess (tak jak to masz w library/sf/cache) albo umieszczenie plików poza katalogiem www - Podoba mi się, że używasz standardowych szablonów korzystając z czystego .php ale niestety składnia jaką się posługujesz powinna być inna (jak dla mnie bardziej czytelna) w stylu
- Co to za pusty bootstrap? - sf_acl - Żadna klasa, która ma wpływ na system NIE MOŻE być klasą statyczną. Wywal statici. Jeżeli ktoś będzie chciał, użyć Acla w stylu "statycznym" użyje Rejestru. Uwaga tyczy się reszty statycznych klas, mających wpływ aplikację. Narzucasz użytkownikowi pewną "konieczność", która jest zła. - Gdzie są testy jednostkowe? - Singleton z registry (IMG:style_emoticons/default/smile.gif) Śmieszna i wybuchowa mieszanka (IMG:style_emoticons/default/tongue.gif) - sf_session::deleteAll - Naprawdę nie prościej jest zrobić? - Skalowalność sesje, cache itd a właściwie jej brak - Masz zły phpdoc Kod @param - string - captcha name to valid Powinno być Kod @param string $name - Brak phpdoca dla właściwości klas - szczerze to prawie cały jest do zmiany sf_captcha : 16 - nie wiem co to za obiekt. - controller.php : 88 getAction Dla mnie mały "bałagan". Dlaczego metoda kontrolera może tworzyć inne kontrolery i pobierać od nich akcje? Czy nie powinno się to dziać w frontControlerze (którego chyba nie masz)? - Klasa Date - naprawdę DateTime wbudowany natywnie w php jest wystarczający (IMG:style_emoticons/default/smile.gif) - Db - wspomnę jeszcze raz, że statyki nie mogą mieć wpływu na system. W tej klasie jedyną metodą statyczną jaka powinna mieć miejsce to "poCoszukaszTutajStatic" - Exception : 21 - chyba nie ma klasy sf_filtr - Form poległ na całej linii - polecam spojrzeć jak działają klasy formularzy w innych fw np w Zendzie - sf_html - Po co takie klasy w kodzie? (IMG:style_emoticons/default/smile.gif) Ale tak szczerze. Zbyt wiele nie ułatwiają a czasem są kompletnie nieprzydatne. - sf_image - typ obrazka sprawdzamy za pomocą FileInfo z tego względu, że get imagesize można dość łatwo oszukać - sf_image::trueResize - w temacie OFFTOP podałem ciekawszą metodę obliczania nowych rozmiarów zdjęć - sf_jquery - Jak już to do tego celu służa helpery w szablonach - sf_math - służy jedynie dla przeliczania kolorów więc nazwa jest myląca. Dlaczego by nie przenieść do sf_colortransform? - na temat modelu i orm się nie wypowiadam bo to bardzo śliski temat - sf_pager podaj przykład paginacji na rekordach. Chyba nie obejdzie się bez ręcznego klepania? - sf_request - dlaczego ludzie filtrują dane na samym wstępie aplikacji zamiast po prostu wtedy kiedy potrzebują? - class sf_template extends sf_controller - o nie nie panie. Logicznie te klasy nie mogą mieć ze sobą nic wspólnego ponieważ realizują kompletnie 2 różne funkcjonalności - sf_translate::_loadTranslate - obsługę różnych formatów robi się za pomocą adapterów albo rozszerzeń klasy bazowej - sf_upload : 147 sevaFileName? W klasie sf_image nie ma takiej właściwości. - gdzie repozytorium dla projektu? Chociażby GitHub Podsumowanie Wydaje mi się, że nie projektowałeś tego FW tylko pisałeś na żywioł. Brak testów jednostkowych powoduje, że twojemu FW nie można po prostu ufać. Jest kompletnie nieskalowalny i nie założyłeś możliwości bardziej zaawansowanego użycia. Przykładowo nie mogę zmienić mechanizmu przechowywania sesji na memcache albo coś innego, ale przypadków jest oczywiście znacznie więcej. Oczywiście nie mówię aby system był w stanie obsłużyć wszystko, ale ty powinieneś dać możliwość łatwego rozszerzenia jego funkcjonalności. Aktualnie jest to niezwykle trudne (czytaj nieskalowalne). W skrócie system był dobry parę lat temu ale nie na te czasy. A teraz plusy - prefixy klas - prawidłowo sf_*, controller_* - method chaining - brak statycznego sf_translate (IMG:style_emoticons/default/smile.gif) - ogólnie bardzo prosty w użyciu - ... staram się szukać czegoś na siłe ale to chyba tyle (IMG:style_emoticons/default/sad.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 03:49 |