Вниз  Трейты в PHP
- 20.10.2011 / 21:40copy  #108231
akawin
  Пользователь

akawin 
Сейчас: Offline
В общем не ясно мне, зачем и для чего. В забугорной док-ве смотрел-смотрел и пришел к выводу, велосипед на костылях. Кто в танке, объясните уж пожалуйста, на пальцах, суть трейтов и чем от обычных простых классов отличаются? Трейт:
trait CLASSNAME {}
Обычный класс:
class CLASSNAME {}
- - - - - - - - - -

http://php.net/manual/en/language.oop5.traits.php

http://habrahabr.ru/blogs/php/130000/

Изменено akawin (23.10 / 22:12) (всего 2 раза)
- 21.10.2011 / 08:39copy  #108267
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
Вроде аналог множественного наследования.
Таких трейтов можно наследовать сколько угодно через оператор use:
  1.  trait Singleton {
  2.  
  3. public static function getInstance() { ... }
  4.  
  5. }
  6.  
  7. class A {
  8.  
  9. use Singleton;
  10.  
  11. // ...
  12.  
  13. }
  14.  
  15. class B extends ArrayObject {
  16.  
  17. use Singleton;
  18.  
  19. // ...
  20.  
  21. }
  22.  
  23. // Singleton method is now available for both classes
  24.  
  25. A::getInstance();
  26.  
  27. B::getInstance();

- 21.10.2011 / 10:18copy  #108278
akawin
  Пользователь

akawin 
Сейчас: Offline
mrEDitor, А как обычно с классом работать с трейтом так можно? Проверить самому просто сейчас нет возможности.
trait a {}
$a = new a;
- 21.10.2011 / 10:30copy  #108280
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
akawin, я хз, у меня пых 5,3 на денвере.
- 21.10.2011 / 12:05copy  #108300
akawin
  Пользователь

akawin 
Сейчас: Offline
mrEDitor, трейты в версии 5.4 только ввели ...
- 22.10.2011 / 17:54copy  #108575
akawin
  Пользователь

akawin 
Сейчас: Offline
На хабре опубликована содержательная статья про это нововведение
- 23.10.2011 / 11:52copy  #108722
Aswan
  Пользователь

Aswan 
Сейчас: Offline
http://habrahabr.ru/blogs/php/130000/ добавьте в 1 пост
Наверх  Всего сообщений: 7
Фильтровать сообщения
Поиск по теме
Поиск по форуму
Новые вверху
  © aNNiMON (Melnik Software)
Онлайн: 32 (1/31)