Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Libraries & Helpers
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
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ć
  1. echo validation::valid_date($zmienna);

A jego definicja:
  1. class Validation {
  2. public static function valid_date($variable) {
  3. //tutaj jeszcze sobie zrób sprawdzanie i konwersję ewentualną
  4. }
  5. }
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.
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.09.2025 - 02:04