![]() |
![]() |
![]()
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: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Dopóki nie odwołujesz się do tych obiektów wewnątrz metody helpera, to tak. Możesz jedynie przekazywać te obiekty jako argumenty metody, ale nic ponadto. Zresztą spójrz na definicje funkcji w helperach. Kohana ma to bardzo widoczne. Cały helper to obiekt, a jego funkcje to metody statyczne. Dlatego też dobrze nadaje się na wszelkie operacje stringowe, konwertujące, walidujące. Otrzymujesz bowiem pewien zbiór danych, obiekt i masz na nim przeprowadzić ściśle określone operacje wypluwające pewien wynik. Jeśli zamierzasz użyć helpera jako łącznika pomiędzy pewnymi klasami, to tak naprawdę tworzyszpewien interfejs komunikacji, proste API pomiędzy nimi. Czy jest tu sens tworzyć heleper? Nie sądzę. Lepiej odpowiednio formatować wyjścia obiektów tak, by ich odbiór przez inne obiekty był zawsze w określony formacie, co zapobiegnie błędom.
Jeśli jednak masz we wszystkich klasach tę samą funkcjonalność, to możesz próbować przepchnąć ją do helpera. Przykładem takiej funkcjonalności może być walidacja. Możesz stworzyć helper, który waliguje pola o zadanym typie, czego przykładem może być A jego definicja: Funkcja ta zwróciłaby FALSE w przypadku niezgodności (pomyłka podczas wpisu) a zwalidowaną do określonego formatu datą, niezależnie jak byłaby ona podana, z kropkami, myślnikami, czy w jeszcze inny sposób. Najważniejsze, że nie mogą one korzystać z innych form danych, poza podstawowymi jak array, wewnątrz. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.09.2025 - 02:04 |