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




Dlatego idealnie do traitsa pasuje jego słówko dodające "use". Klasa więc używa traitsa i jego własności czy metod, które dostarcza. Do pewnego stopnia traitsy więc są natychmiast dostarczalną wersją interfejsów (choć same także modą mieć metody abstrakcyjne i coś wymuszać tym samym). O ile jednak interfejsy mówią, że klasa musi posiadać to czy tamto, o tyle traitsy mogą wprost już dać określone możliwości z samego faktu deklaracji jego użycia przez klasę. Część osób, nie bez powodów, widzi jego wykorzystanie w pewnych sytuacjach jako zastępnik Dependancy Injection Container.

@wookieb: fajna właściwość... i co najważniejsze - logiczna. W końcu jeśli klasa używa konkretnego traitsa, to można się posłużyć wszystkim co on udostępnia, więc można to nazwać instancją traitsa, która jest bogatsza o to, czego traits jest "częścią". Szkoda, że PHP nie idzie tą samą drogą...
Powód edycji: [thek]: Małe dopowiedzenia ;)
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 - 15:55