狠狠撸

狠狠撸Share a Scribd company logo
罢谤补颈迟蝉について
       小山 哲志
   koyama@hoge.org
 2008/03/16 PHP懇親会



                     1
発表者について
小山 哲志

(株)ビート?クラフト所属

  CNET Japanトラックバックサーバ

  OCNブログ人

  Agilemedia Network広告配信サーバ

id:koyhoge

PHP歴は9年くらい


                              2
Traits
Stefan Marr氏がinternalsに提案した
新たな構文
  http://news.php.net/php.internals/35562

  2008/02/18

Request for Comments: Traits for PHP
  http://www.stefan-marr.de/artikel/rfc-traits-for-
  php.html


                                                      3
<?php
        class Base {

文法の基本
          public function sayHello() {
            echo 'Hello ';
          }
        }

        trait SayWorld {
          public function sayHello() {
            parent::sayHello();
            echo 'World!';
          }
        }

        class MyHelloWorld extends Base {
          use SayWorld;
        }

        $o = new MyHelloWorld();
        $o->sayHello(); // echos Hello World!
        ?>




                                                4
<?php


複数use
        trait Hello {
          public function sayHello() {
            echo 'Hello ';
          }
        }

        trait World {
          public function sayWorld() {
            echo ' World';
          }
        }

        class MyHelloWorld {
          use Hello, World;
          public function sayExclamationMark() {
            echo '!';
          }
        }

        $o = new MyHelloWorld();
        $o->sayHello();
        $o->sayWorld();
        $o->sayExclamationMark();
        // Results eventually in: Hello World!




                                                   5
<?php
         trait Hello {


mix-in
           public function sayHello() {
             echo 'Hello ';
           }
         }

         trait World {
           public function sayWorld() {
             echo 'World!';
           }
         }

         trait HelloWorld {
           use Hello, World;
         }

         class MyHelloWorld {
           use HelloWorld;
         }

         $o = new MyHelloWorld();
         $o->sayHello();
         $o->sayWorld();
         // Results eventually in: Hello World!
         ?>




                                                  6
Stefanの意図


 Well, think this would be a Mixin
mechanism like in Ruby.




                                     7
RFCその後

建設的な議論が進む
 opcodeへの影響は?
 構文のPHPらしさ
現在は議論停止中(またかよ)



                 8

More Related Content

罢谤补颈迟蝉について