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
wiewiorek
post
Post #2





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

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


Czyli jak mam:
  1. interface Testowy
  2. {
  3. public function KuKu();
  4. }
  5.  
  6. class Klasa implements Testowy
  7. {
  8. public function KuKu()
  9. {
  10. echo "KuKu";
  11. }
  12. }


to będę mógł zapisać tak:
  1. trait Testowy
  2. {
  3. public function KuKu()
  4. {
  5. echo "KuKu";
  6. }
  7. }
  8.  
  9. class Klasa
  10. {
  11. use Testowy;
  12. }


(IMG:style_emoticons/default/questionmark.gif)

Ponadto w traitsach mogę deklarować zmienne np.:
  1. trait Testowy
  2. {
  3. private $zmienna1;
  4. private $zmienna2;
  5. private $zmienna3;
  6.  
  7. public function KuKu()
  8. {
  9. echo "KuKu";
  10. }
  11. }


(IMG:style_emoticons/default/questionmark.gif)

A do tego metoda zaimplementowana w traitsie może być przesłonięta przez metodę w klasie wykorzystującej traitsa?


Przeglądnąłem kody paru blogów (przyznam, że patrzyłem tylko na kod, bo nie chciało mi się czytać, a poza tym nie mam php 5.4 żeby sprawdzić):
http://cogo.wordpress.com/2011/07/01/playi...-php-5-4alpha1/
http://davedevelopment.co.uk/2011/08/06/tr...ging-trait.html
i widzę, że traits może mieć nawet konstruktor:
  1. trait ParamsHandler {
  2. 05 private $params;
  3. 06
  4. 07 public function __construct(array $params) {
  5. 08 $this->setParams($params);
  6. 09 }
  7. 10
  8. 11 public function setParams(array $params) {
  9. 12 $this->params = $params;
  10. 13 }
  11. 14
  12. 15 public function getParams() {
  13. 16 return $this->params;
  14. 17 }
  15. 18
  16. 19 public function setParam($key, $value) {
  17. 20 $this->params[$key] = $value;
  18. 21 }
  19. 22
  20. 23 public function getParam($key) {
  21. 24 return (isset($this->params[$key]) ? $this->params[$key] : null);
  22. 25 }
  23. 26 }


Jakoś mi to przypomina klasę i wielodziedziczenie....

Ten post edytował wiewiorek 26.10.2011, 18:55:32
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: 8.10.2025 - 12:05