Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Traits w PHP
pitbull82
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Witam

Tak się zastanawiam nad przydatnością traits w php. Nie wiem czy dobrze rozumiem ideę, ale widzę ich zastosowanie jako np. zastąpienie globalnych funkcji zdefiniowanych przez użytkownika. Do tej pory można sobie było zdefiniować funkcję, ale nigdy nie było wiadomo czy w kolejnej wersji php nie wprowadzą funkcji o takiej samej nazwie i będzie problem. Teraz wystarczy dodać taką funkcję do traits i może być wykorzystana w klasach które tego potrzebują. Jako przykład traits widziałbym np. wrzucenie tam funkcji umożliwiających operacje na plikach/katalogach typu usuwanie katalogu z zawartością i potem wykorzystywanie w klasach które potrzebują takiej funkcjonalności.

Proszę o opinię czy dobrze to rozumiem. Może Wy macie jakieś inne pomysły/odczucia?

Pozdrawiam
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




@Crozin: W przypadku prostszych, mniejszych, aplikacji użycie DIC może być nieco sztuką dla sztuki, jeśli przewidujemy użycie raptem kilku możliwości, które są bardzo szablonowe. Przykładem takiego prostego rozwiązania jest zapis/odczyt danych. Jeśli mamy do czynienia naprawdę z kobyłą elastyczną - ma to sens, bo nigdy nie wiemy przecież co nam za źródło ostatecznie może posłużyć. Jeśli jednak znamy ograniczenia, możemy się ograniczyć do jednej klasy lub właśnie traitsa, który nam to połączenie ze źródłem umożliwi. Definiujemy sobie traitsa z tym połączeniem i już mamy spokój. Zwyczajnie dajemy use TraitsPołączenia klasie i zapominamy. Zauważ, że nie bez powodu pisząc swój tekst używałem słów: "może", "w określonych wypadkach/sytuacjach". Nie są to jedynie zabiegi stylistyczne z mojej strony i jestem świadom, że ma to rozwiązanie swoje wady i zalety.

To co potem rozważałeś to właśnie dobry przykład dla prostego serwisu. "Zapytałbym" o to, czy to co mnie interesuje ma traitsa RDBConnection i byłbym pewien co do możliwości operacji na jakiejś tam bazie danych, którą to ów traits by mi udostępniał. Owszem, mógłbym zamiast traitsa użyć osobnej klasy połączenia, DIC pozwalający mi na elastyczne podejście do tego, czy inne rozwiązanie problemu zaproponować, ale równie dobrze mogę użyć traitsa, który będzie równie zapewne prostszy i szybszy w implementacji niż elastyczniejsze ale przez to bardziej złożone mechanizmy.
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: 9.10.2025 - 13:42