<rmcreative>

RSS

Все заметки с тегами «trunk, traits»

Можно уточнить:

    (1)
  1. Traits в trunk PHP

    26 августа 2010

    Вот и traits попали в транк PHP.

    Данная возможность была придумана как альтернатива множественному наследованию и mixin-ам. trait представляет собой набор PHP-кода (обычно это методы), который можно использовать в своём классе. Фактически trait — поддерживаемый на уровне языка умный copy-paste.

    trait Dumper {
      public function dump($var){
        echo '<pre>'.print_r($var, true).'</pre>';
      }
    }
     
    class MyClass {
      use Dumper;
    }
     
    $myClass = new MyClass();
    $myClass->dump('test');

    MyClass в итоге будет выглядеть как:

    class MyClass {
      public function dump($var){
        echo '<pre>'.print_r($var, true).'</pre>';
      }
    }

    Это самый простой случай. Более сложные и интересные вещи, такие как подмена имени метода при подключении, разрешение конфликтов, trait-ы из trait-ов, требования к классу, описаны на английском в wiki.

    16 комментариев