2012年3月19日月曜日

PHP5.4インストール、Traitsの利用

PHP5.4が安定版としてリリースされたので、インストールしてみました。
インストール手順はこちらの記事を参考にしました。

・ソース取得
wget http://www.php.net/get/php-5.4.0.tar.gz/from/jp.php.net/mirror -O php-5.4.0.tar.gz

・tarファイル展開
tar xvf php-5.4.0.tar

・コンパイルオプション設定
cd php-5.4.0
./configure --enable-mbstring \
--prefix=/usr/local/php \
--enable-mbregex \
--with-zlib=/usr/local/zlib \
--with-zlib \
--enable-zip \
--enable-ftp \
--enable-pcntl \
--enable-soap \
--with-mcrypt \
--with-gd \
--enable-pdo \
--with-pear \
--with-readline \

・make、インストール
make
sudo make install

・確認


これでPHP5.4のインストールが完了しました。


新機能の Traits を試してみました。
Traits はソースの再利用に有効になるかもしれません。詳しくはマニュアル に書いています。

Traits を利用したシングルトン
<?php
trait TraitSingleton {
private static $_instance;

private function __construct() {
}

public static function getInstance() {
if (isset(self::$_instance) === false) {
self::$_instance = new static;
}

return self::$_instance;
}
}


シングルトン Traits 利用
<?php
require_once('/home/isuzuki/dev/php/php5.4/TraitSingleton.php');

abstract class Base {
}

class TraitSample1 extends Base {
use TraitSingleton;

private function __construct() {
}

public function echoClass() {
echo __CLASS__ ."\n";
return true;
}
}

class TraitSample2 extends Base {
use TraitSingleton;

private function __construct() {
}

public function echoClass() {
echo __CLASS__ ."\n";
return true;
}
}

$obj1 = TraitSample1::getInstance();
$obj1->echoClass();
$obj2 = TraitSample2::getInstance();
$obj2->echoClass();


実行結果


これで、Traitsが無事利用できていることがわかりました。

0 件のコメント:

コメントを投稿