![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Witam w moim systemie(fw) obsluguje biblioteki jak i helpery(jak narazie nie mam zadnego).
Chce sie dowiedziec jaka u was jest roznica pomiedzy biblioteka a helperem. Ogolnie rzecz biorac nie znalazlem zadnej interesujacej mnie odpowiedzi w google jesli chodzi o roznice pomiedzy biblioteka a helperem jednak mam moje zdanie, widzac tez jak dziala to w kohanie lub fw przedstawionych na forum(rapide,mohebo,vframe) do ktorych niestety nie mam kodu tylko watek z forum. Ja to widze tak: -Library: czyli klasa ktora pelni dana role potrzebna mniej lub wiecej samemu systemowi by dzialal, lub jakies stale rozszerzenia systemu tak ogolnie mowiac, mam nadzieje ze rozumiecie co chce przez to powiedziec. -Helper: klasa ze zbiorem krotkich metod ktora pomoga bibliotece lub danemu komponencie/pluginu, niezalezna od samego systemu. Teraz tak widzialem rozne implementacje helperow jako klasy tylko z metodami statycznymi lub zwykle klasy jak lib z mniejsza funkcjonalnoscia. Ktora metoda jest najbardziej odpowiednia? I czy helper powinien byc jakby to powiedziec "czescia" widoku tzn jego wywolanie powinno znajdowac sie w widoku lub jako klasa w kontrolerze komponentu/pluginu? Patrzac np na kohana(http://docs.kohanaphp.com/helpers/upload) widac ze helper dziala razem z kodem biblioteki w kontrolerze, jednak w rapide(http://forum.php.pl/index.php?showtopic=53356&view=findpost&p=291964) wszystko jest w widoku. Nie wiem czy obydwie implementacje sa prawidlowe lub jest to widzimisie kodera i jego wygody? Pytam bo chcialbym zrobic to jak najlepiej i jak najbardziej dzielic wszystko na biblioteke/helper |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Wywołanie jakiejś funkcji czy metody, załadowanie dodatkowej klasy to oczywiście dodatkowy narzut na pamięć czy procesor, ale... 1) Jest to tak nikłe, że nie warto szukać optymalizacji tutaj 2) Nie powinno się popadać w skrajność 3) Wydajność aplikacji jest bardzo ważna - ale nie najważniejsza w większości przypadków Ja nie mowie o wywolaniu w jakims komponencie czy czyms innym:
Lecz o: Gdzie klasa View za kazdym napotkaniem Klasa::metoda(); wywola funckje dana funkcje(wczesniej trzeba bedzie tylko zaladowac helper do kontrolera by klasa view tego juz nie robila) i przekazywala jej parametry wszystko za pomoca regexp Ok co do helperow juz rozwiazalem klasa z metodami statycznymi i mozna wykonac tylko z poziomu php w widoku nie ma takiej mozliwosci(jak narazie). Jednak nasuwa mi sie kolejne pytanie. Kalendarz,godzina+data,menu i takie proste statyczne rzeczy gdzie powinny sie znajdowac ponoc rozbijanie aplikacji na jak najmniejsze czesci nie jest zbyt dobrym pomyslem, jednak taka prosta i statyczna rzecz ktora nie potrzebuja nawet modelu nie pasuja mi ani do komponentow/pluginow(poniewaz te maja troche wieksza funkcjonalnosc) ani do helperow. Wiec tak patrzac troche na archiwum pro, fw RAPIDE i symfony zauwazylem nasze piekne i znane Widgety/Aplety czy jak kto woli to nazywac funkcjonalnosc jest taka sama. Jak dla mnie taki kalendarz(czy inny prosty widget/aplet) powinien miec bardziej ubogi kontroler niz ten od komponentu/pluginu powinien posiadac prosty widok i w kontrolerze dostep tak do max 3 obiektow Lang,Router i Auth i Acl. I teraz czy taki widget ogolnie powinien posiadac tylko jedna metode np Execute() czy Render() lub moze posiadac ich kilka? Wtedy z poziomu kontrolera latwo byloby wczytac taki widget ktory zwroci nam kod html by go wstawic np w komponencie panelu user'a:
Co wy na to? EDIT Z tego co doczytalem chodzi o Sloty z symfony wywoluje akcje i jej wynik wsadzam do widoku. Ten post edytował marcio 22.11.2009, 03:18:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 16:06 |