![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 36 Dołączył: 8.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Co sądzicie o traits - cechach - w PHP ? Gdzie widzicie ich zastosowanie ? Nie będzie to małe udogodnienie kosztem wydajności/nieprzejrzystości w kodzie ?
artykuł: http://webhosting.pl/PHP.5.4.wprowadzi.obs...ch.%5Btraits%5D Ten post edytował *OuTSideR* 28.11.2010, 17:02:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zastosowań jest bardzo dużo, chociaży wprzęgnięcie EventDispatchera do klasy która jej natywnie nie posiada ani po nim nie rozszerza.
BTW Jak wchodziło goto też pieprzono, że będzie burdel i co? Nikt tego nie stosuje. Ten post edytował wookieb 28.11.2010, 18:21:25 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Uważam, że będzie mniejszy burdel, niż programistyczne rozwiązania typu pluginy lub mixiny. Nie twierdzę, że traitsy całkowicie takie coś zastąpią, ale szczerze mówiąc podoba mi się takie rozwiązanie na poziomie języka.
Po za tym traitsy to będzie moc w przypadku takiego Doctrine2. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 1 Dołączył: 2.08.2010 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Ciekawie się zapowiada - i wcale nie będzie burdelu. Baa, nawet porządek większy być powinien - jak bym sobie tak mógł 10 klas naraz dołączyć (IMG:style_emoticons/default/biggrin.gif) , ale od czego są interfejsy. Chociaż z drugiej strony będzie coś takiego:
o co qrwa chodzi, że chodzi a uje*** tę metodę! BTW. W PHP jest goto ?! pierwsze słyszę ;p |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@Grand93: Nie potrafię sobie wyobrazić co mają interfejsy do tego...
Na pewno fajne w momencie, gdy mamy zaimplementować jakiś interfejs złożony z getterów/setterów - można uniknąć przepisywania n razy dokładnie tego samego kodu. W innych przypadkach wątpię czy będzie to skuteczne. Pomysły z jakimiś modyfikacjami widoczności czy innymi "atrybutami" dla właściwości/metod już mi się cholernie nie podobają. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Czy w traits będzie dostęp do $this?
Jeśli nie to bez sensu. +podobne wielodziedziczenie można było uzyskać już w php5.2 dzięki __call() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czy w traits będzie dostęp do $this? Przecież masz przykłady.Cytat +podobne wielodziedziczenie można było uzyskać już w php5.2 dzięki __call() 1. __call() całe szczęście nie jest wstanie zapewnić wielodziedziczenia, "cechy" też nie - nie takie jest ich przeznaczenie.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 19 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kolejny element języka, który może skończyć się dramatem, przy używaniu go przez nie doświadczonych programistów. Uważam podobnie jak batman http://blog.wilgucki.pl/2010/11/php-54-na-horyzoncie.html na swoim blogu, że powstaną piękne i gigantyczne klasy do wszystkiego. Cóż zobaczymy, ja na razie w swojej pracy nie widzę potrzeby używania cech, ale zobaczymy po pierwszych implementacjach co ludzie wymyślą. Grunt, że coś się zaczyna dziać w PHP ostatnimi czasy.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Niedoświadczeni nawet nie wiedzą o istnieniu takich wynalazków, więc nie będzie z tym problemu. Przykład z trochę innej beczki, ale podobny: PDO jest od dawna, a w dziale Przedszkole widać, że mało kto z początkujących w tematyce PHP-SQL o nim słyszał.
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Niedoświadczeni nawet nie wiedzą o istnieniu takich wynalazków, więc nie będzie z tym problemu. Przykład z trochę innej beczki, ale podobny: PDO jest od dawna, a w dziale Przedszkole widać, że mało kto z początkujących w tematyce PHP-SQL o nim słyszał. Głupota jest jak powódź. Dopadnie wszystko w swoje ręce, także na to bym nie liczył. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Zajrzyj do Przedszkola. Wątpię, czy da się osiągnąć wyższy stopień ogłupienia niż autorzy niektórych tematów, cechy tego nie zmienią, także bym się nie obawiał.
|
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Tak... Ale daj dziecku nóż, to się pokaleczy (IMG:style_emoticons/default/winksmiley.jpg) Początkujący kopiują żywcem partie kodu bez ich zrozumienia. Jeśli ktoś nie rozumie jakie mechanizmy były w nim użyte, to polegnie przy byle pierdółce. Potem się zwiększy tylko w Przedszkolu i PHP liczba tematów "Ten kod mi nie działa, a u autora jak najbardziej. Dlaczego?"
Ja PDO używam rzadko, choć znam jego możliwości. Znam też ograniczenia. I pracuję głównie ze starymi serwisami, gdzie PDO zwyczajnie by tylko spowolniło całość, a mi tylko więcej pracy przysporzyło. Inny przykład... Używam Kohany2 i mam tam fajny query builder. Zaczynam też trochę z Kohaną3 i ona ma nieco inny (IMHO lepszy), ale pisząc kod nieraz zdarza mi się uciekać z powodu ich ograniczeń do walenia pełnego zapytania w funkcję wywołującą zapytania wprost. Podobnie jest z każdym narzędziem. Początkujący nie wiedzą tego i tutaj jest pies pogrzebany. Łatwo im wpaść w złe (lub gorsze) nawyki bez zadawania sobie pytania "czy to jest OK?". Tu nie chodzi więc nawet o poziom ogłupienia... Nie dziwię się, że wookieb wątpi. Jedno z praw Murphy'ego mówi: "Głupi są zbyt pomysłowi" i jest to prawda. Zbyt często sam jestem tego świadkiem podczas rozmów z klientami. Można im coś napisać na czole ogromnymi literami, a i tak o to zapytają (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 05:19 |