Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Traitsy, omg -_-
cojack
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


Wiecie co, jak wejdą te Traitsy w php a to już nie długo, to jak najszybciej będę chciał się przebranżowić z php na inny język, najbliżej mi do c++ albo javy.

Straszne rzeczy się będą działy w php...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@cojak: W jaki niby sposób Traitsy miałby niszczyć polimorfizm czy inne cechy kodu? Przecież to nic innego jak rozbicie kodu klasy na kilka plików / bloków. Ostatecznie o ile dobrze się orientuję obiekt utworzony na podstawie klasy korzystającej z traitstów będzie zachowywał się dokładnie tak samo jak ten utworzony na podstawie klasy gdzie zamiast use Abc będzie przekopiowany kod traitsa(u?) Abc. No może w Reflection API pojawi się kilka nowych metod pozwalających taką zmianę wychwycić.

Nie mniej jednak sam mocno wątpię w to, by ten bajer cokolwiek zmienił. Po prostu w normalnym kodzie, zbyt rzadko zdarza się by w różnych klasach powtarzał się dokładnie ten sam fragment implementacji czegoś. Co więcej, gdy już taki fragment się znajdzie trzeba się będzie mocno zastanowić czy jego wydzielenie ma po prostu sens. W końcu w miarę normalny kod "wykorzystuje" zasadę DRY, a traits'y potrzebują takich potworków by mieć w ogóle co zastępować.

@wookieb: Gdyby traitsy wybierało się w momencie tworzenia obiektu to by była dopiero tragedia. Koniec, końców PHP stara się implementować klasyczny, oparty na klasach, statyczny model obiektowy. Cała reszta języka jest do takiego modelu przystosowana oraz programiści są do takiego modelu przyzwyczajeni (chociaż w sumie patrząc po ilości __get'ów i __set'ów tutaj na forum mam co do tego spore wątpliwości). W Scali, którą się chyba inspirowałeś pisząc to, też nie wygląda to tak z tego co się orientuję.

Ten post edytował Crozin 25.10.2011, 17:24:49
Go to the top of the page
+Quote Post

Posty w temacie
- cojack   Traitsy   25.10.2011, 12:08:49
- - nospor   Aj tam, a kto ci każe z nich korzystać? Nie chcesz...   25.10.2011, 12:14:10
- - cojack   Przecież te Traitsy nie będą miały nic wspólnego z...   25.10.2011, 12:22:53
- - marcio   tez nie widze korzysci tego mechanizmu...jedyne co...   25.10.2011, 12:32:55
- - el.pablo.72   Nie przesadzajcie, po pierwsze co całkiem użyteczn...   25.10.2011, 12:47:36
- - wookieb   Wymienię parę elementów, które tylko skorzystają n...   25.10.2011, 12:51:57
|- - scanner   Cytat(wookieb @ 25.10.2011, 13:51:57 ...   25.10.2011, 13:17:04
- - ixpack   Ja Panowie może i nie mam tyle doświadczenia co Wy...   25.10.2011, 12:55:33
- - wookieb   Cytat(cojack @ 25.10.2011, 13:08:49 )...   25.10.2011, 13:02:14
- - cojack   Nie dali wielodziedziczenia bo można byłoby burdel...   25.10.2011, 13:13:29
- - wookieb   Cytat(scanner @ 25.10.2011, 14:17:04 ...   25.10.2011, 13:20:33
|- - scanner   Cytat(wookieb @ 25.10.2011, 14:20:33 ...   25.10.2011, 13:25:19
- - hwao   Pomysł połączenia interfejsu + traits (w jedno) to...   25.10.2011, 13:22:27
|- - cojack   Cytat(hwao @ 25.10.2011, 14:22:27 ) P...   25.10.2011, 15:24:07
|- - lukasz_test   Cytat(hwao @ 25.10.2011, 14:22:27 ) P...   25.10.2011, 18:42:13
- - wookieb   Cytuj cytuj   25.10.2011, 13:39:06
|- - blooregard   Cytat(wookieb @ 25.10.2011, 14:39:06 ...   25.10.2011, 13:48:05
- - marcio   poczytalem troche o tych traitsach i na pierwszy r...   25.10.2011, 13:46:55
- - by_ikar   Nie no jak ktoś ma zamiar wszędzie, do każdej jedn...   25.10.2011, 13:56:30
- - normanos   Boje się traitsów po phpcon... -> https://twit...   25.10.2011, 13:57:34
- - marcio   @normanos carpe diem btw: widze ze php idzie na d...   25.10.2011, 14:03:54
|- - blooregard   Cytat(marcio @ 25.10.2011, 15:03:54 )...   25.10.2011, 14:23:45
- - marcio   juz jest commit dla wszystkich typow ale to chyba ...   25.10.2011, 14:40:53
- - Crozin   @cojak: W jaki niby sposób Traitsy miałby niszczyć...   25.10.2011, 17:19:19
- - Speedy   Traitsy, to nie jest wcale taki głupi pomysł. Możn...   25.10.2011, 17:37:59
- - Crozin   @Speedy: Tak na moje oko, w większości przypadków ...   25.10.2011, 17:49:08
- - Crozin   @lukasz_test: Traitsy to nie wielodziedziczenie - ...   25.10.2011, 18:43:17
- - marcio   Cytat(Crozin @ 25.10.2011, 19:43:17 )...   25.10.2011, 19:35:19
- - Crozin   Interfejsy nigdy nie miały służyć za wielodziedzic...   25.10.2011, 19:44:15
- - marcio   Skoro sa to cechy to wedlug mnie jako filtr bbcode...   25.10.2011, 20:22:06
- - Crozin   @marcio: Dependency Injection - domyślam się, że w...   25.10.2011, 20:27:47
- - marcio   Wiem co to jest DI Wiesz jak masz chwile czasu po...   25.10.2011, 20:44:08
- - Crozin   1. Coś takiego jak parser BBCode to rozbudowana st...   25.10.2011, 22:15:25
- - wookieb   Cytat(Crozin @ 25.10.2011, 18:19:19 )...   25.10.2011, 22:40:09
- - marcio   Cytat1. Coś takiego jak parser BBCode to rozbudowa...   25.10.2011, 23:05:13
- - cojack   Cytat(Crozin @ 25.10.2011, 18:19:19 )...   26.10.2011, 08:28:41
- - Cysiaczek   Przecież musisz zadeklarować że dany obiekt używa ...   26.10.2011, 09:36:25
- - Crozin   @cojack: Zakładasz wątek w charakterze "OMFG ...   26.10.2011, 10:17:40
- - cojack   [PHP] pobierz, plaintext class MyAbcClass implemen...   26.10.2011, 10:24:13
- - marcio   Nie powiela sie kodu...ale w takim razie to moznab...   26.10.2011, 10:24:58
|- - cojack   Cytat(marcio @ 26.10.2011, 11:24:58 )...   26.10.2011, 10:32:58
|- - Theqos   Cytat(cojack @ 26.10.2011, 11:32:58 )...   26.10.2011, 12:36:24
- - nospor   Cytatto ścierwo zadziała @cojack zmień ton wypowie...   26.10.2011, 10:27:50
- - Crozin   @cojack: Możesz podać jakikolwiek konkret? Co (w t...   26.10.2011, 10:35:48
- - cojack   To że klasa MyDefClass nie posiada fizycznie metod...   26.10.2011, 11:37:55
- - wookieb   Posiada. Dzięki Traitsom. A tak naprawdę to crozin...   26.10.2011, 11:51:12
- - cojack   DI enginowy?   26.10.2011, 11:55:47
- - wookieb   To nie ma kompletnie NIC wspólnego z DI.   26.10.2011, 12:04:56
- - cojack   A to ciekawe.   26.10.2011, 12:06:32
- - Crozin   CytatTo że klasa MyDefClass nie posiada fizycznie ...   26.10.2011, 12:28:28
|- - cojack   Cytat(Crozin @ 26.10.2011, 13:28:28 )...   26.10.2011, 12:31:36
- - marcio   Cytat(Crozin @ 26.10.2011, 13:28:28 )...   26.10.2011, 12:33:05
- - wookieb   Niepotrzebny jest interfejs dla metody, która impl...   26.10.2011, 12:35:36
- - marcio   @wookieb hmm czyli traits sam w sobie dziala jak i...   26.10.2011, 12:39:20
- - wookieb   [PHP] pobierz, plaintext class Test { use ...   26.10.2011, 12:43:37
- - Crozin   @wookieb: Nic nie jest tam nadmiarowe. Jak chcę mi...   26.10.2011, 12:47:31
- - wookieb   Cytat(Crozin @ 26.10.2011, 13:47:31 )...   26.10.2011, 12:49:56
- - Crozin   Właśnie teraz wpadło mi do głowy, że traitsy przed...   26.10.2011, 13:04:51
- - wookieb   Nie możesz dynamicznie zmienić widoczności metod t...   26.10.2011, 13:08:07
- - Crozin   @wookieb: http://php.net/manual/en/language.oop5.t...   26.10.2011, 13:11:03
- - wookieb   Nie zauważyłęm. Przepraszam Kajam się   26.10.2011, 13:13:43
- - wiewiorek   Czyli jak mam: [PHP] pobierz, plaintext interface ...   26.10.2011, 18:38:37
- - marcio   Z tego co sie orientuje to traitsy nie maja konstr...   27.10.2011, 14:31:27


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: 5.10.2025 - 15:28