Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady panujące na forum News

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 :)

> Spawn Framework 1.2.6 wydany!
Spawnm
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
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?
-
  1. defined('SPAWNM') OR die('No direct access allowed.');
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
  1. <?php if(true) : ?>
  2. <?= $zmienna ?>
  3. <?php endif; ?>

- 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ć?
  1. $_SESSION = array();


- 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
  1. if( isset($this->_img->sevaFileName) ) $newFileName = $this->_img->sevaFileName;

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)
Go to the top of the page
+Quote Post

Posty w temacie
- Spawnm   Spawn Framework 1.2.6 wydany!   13.09.2010, 13:21:43
- - wookieb   Czy inherit w Acl działa "live" tzn jeże...   13.09.2010, 13:24:23
- - phpion   Tak z czystej ciekawości: przeglądam dokumentację ...   13.09.2010, 13:43:46
- - Spawnm   @wookieb - inherit(a, dziedziczy z b wszystkie ro...   13.09.2010, 14:05:17
- - wookieb   Cytat(Spawnm @ 13.09.2010, 15:05:17 )...   13.09.2010, 14:07:04
- - Spawnm   Hmm przemyślę to co mówisz   13.09.2010, 14:10:18
- - skowron-line   Cytat(Spawnm @ 13.09.2010, 13:21:43 )...   13.09.2010, 14:26:53
- - Spawnm   skowron-line - wiadomo że nie tak popularnego jak ...   13.09.2010, 14:39:43
- - marcio   @skowron-line to samo chcialem mu napisac ale zost...   13.09.2010, 14:40:22
|- - Spawnm   Cytat(marcio @ 13.09.2010, 15:40:22 )...   13.09.2010, 14:42:55
- - Crozin   @marcio: http://spawnframework.com/license O ile b...   13.09.2010, 16:45:21
- - phpdev   Cytat(Spawnm @ 13.09.2010, 14:21:43 )...   18.09.2010, 18:12:29
- - Spawnm   Czy ja przypadkiem 4 posty wyżej nie wyjaśniałem k...   18.09.2010, 18:48:49
- - wookieb   Hehe Sława uderzyła do glowy Nie no żartuje Co ...   18.09.2010, 19:22:24
- - marcio   Cytat(wookieb @ 18.09.2010, 20:22:24 ...   18.09.2010, 19:57:04
- - wookieb   Mam mieszane uczucia co do upubliczniania swoich p...   18.09.2010, 20:16:20
|- - Spawnm   Cytat(wookieb @ 18.09.2010, 21:16:20 ...   18.09.2010, 21:03:30
- - wookieb   No i nadeszła chwila prawdy Na początek przyznam,...   18.09.2010, 22:19:42
- - Spawnm   Cytat- Jaka jest różnica między plikami .phtml a ....   19.09.2010, 10:29:50
- - Crozin   Cytatczas mi pokazuje że coraz więcej osób rezygnu...   19.09.2010, 11:52:44
- - Spawnm   @Crozin - chcesz maile/imiona ? Jakiego ty się źró...   19.09.2010, 11:57:58
- - phpion   Jakiegokolwiek źródła, skąd masz takie informacje?...   19.09.2010, 12:16:35
- - Crozin   Piszesz o "popularnym frameworku" (wiem,...   19.09.2010, 12:29:22
- - Spawnm   Wiem że jest dość odważne, możliwe że nawet trochę...   19.09.2010, 12:30:00
- - wookieb   Cytat(Crozin @ 19.09.2010, 13:29:22 )...   19.09.2010, 14:12:42
|- - Spawnm   Cytat(wookieb @ 19.09.2010, 15:12:42 ...   19.09.2010, 14:28:49
- - Crozin   Cytat1) array_key_exists jest wiele razy wolniejsz...   19.09.2010, 14:18:08
- - wookieb   Cytat(Crozin @ 19.09.2010, 15:18:08 )...   19.09.2010, 16:02:23
- - Spawnm   CytatCzyli twoja klasa formularza załatwia tylko w...   19.09.2010, 16:12:44
- - Crozin   CytatW ile procentach przypadków? 5%? Oczywiście, ...   19.09.2010, 16:13:14
- - wookieb   Cytat(Spawnm @ 19.09.2010, 17:12:44 )...   19.09.2010, 16:21:27
- - Crozin   CytatProszę o przykładAle co, mam Ci podać przykła...   19.09.2010, 16:30:01
- - nospor   CytatPrzykładowo: pobierasz dane z bazy i masz kol...   19.09.2010, 16:39:35
- - wookieb   [PHP] pobierz, plaintext isset($rekord['po...   19.09.2010, 16:42:27
- - Spawnm   CytatA no tak bo to ORM. A jeżeli zaistnieje konie...   19.09.2010, 16:48:32
- - wookieb   Cytat(Spawnm @ 19.09.2010, 17:48:32 )...   19.09.2010, 16:54:10
- - Crozin   CytatDo php dotrze to jako pusty tekst a nie jako ...   19.09.2010, 17:29:19
- - wookieb   Hehe Crozin nie rozumiemy się Ja nie mówię, że ar...   19.09.2010, 17:33:10
- - Crozin   Cytattylko, że tych miejsc jest wyjątkowo małoWłaś...   19.09.2010, 17:58:35
- - Spawnm   A ja mam pytanie - wypomniałeś mi że używam isset ...   19.09.2010, 18:06:38
- - Crozin   O ile dobrze pamiętam to w sf_array::get - nie chc...   19.09.2010, 18:22:33


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 03:49