Zend Framework2.0 を試してみる

Zend Framework2.0 の現在のステータスは 2.0.0dev1 と思いっきり開発中なので地雷満載と思われるので、まだお勧めしない。


zf2 の最新リポジトリは Git にある(Github にもあるがこれはミラー)。
とりあえず clone してみる。

$ git clone git://git.zendframework.com/zf.git
Cloning into zf...
remote: Counting objects: 93700, done.
remote: Compressing objects: 100% (18880/18880), done.
remote: Total 93700 (delta 72436), reused 89502 (delta 68474)
Receiving objects: 100% (93700/93700), 40.70 MiB | 383 KiB/s, done.
Resolving deltas: 100% (72436/72436), done.

全部落ちてくるのに時間がかかる。
終わったら library を php.ini の include_path に追加する。


とりあえず zf コマンドを動かしてみる。

$ cd zf/bin
$ php zf.php show version
Warning: include_once(Zend/Tool/Framework/Client/Console/Console.php): failed to open stream: No such file or directory in /var/php/zf/library/Zend/Loader.php on line 151

エラーが大量にでる…。


とりあえず zf.php の中を見てみる。

<?php
$console = new Zend\Tool\Framework\Client\Console\Console($configOptions);

クラス名が間違っている…。
Console が一つ多いので削る。

$ php zf.php show version
Warning: include_once(Zend/Tool/Framework/Client/ResponseDecorator/AlignCenter.php): failed to open stream: No such file or directory in /var/php/zf/library/Zend/Loader.php on line 151

これもインスタンス生成時のクラス名が間違っている。
とりあえず、diff ったもの

$ diff -u zf.php.orig zf.php      
--- zf.php.orig	2010-07-22 22:05:16.000000000 +0900
+++ zf.php	2010-07-22 22:06:43.000000000 +0900
@@ -607,7 +607,7 @@
 	    
 	    Zend\Loader\Autoloader::getInstance();
 	    
-	    $console = new Zend\Tool\Framework\Client\Console\Console($configOptions);
+	    $console = new Zend\Tool\Framework\Client\Console($configOptions);
 	    $console->dispatch();
 		return null;
     }
$ diff -u Console.php.orig Console.php      
--- Console.php.orig	2010-07-22 22:28:59.000000000 +0900
+++ Console.php	2010-07-22 22:32:07.000000000 +0900
@@ -185,18 +185,18 @@
     {
         $response = $this->_registry->getResponse();
 
-        $response->addContentDecorator(new ResponseDecorator\AlignCenter());
-        $response->addContentDecorator(new ResponseDecorator\Indention());
-        $response->addContentDecorator(new ResponseDecorator\Blockize());
+        $response->addContentDecorator(new Console\ResponseDecorator\AlignCenter());
+        $response->addContentDecorator(new Console\ResponseDecorator\Indention());
+        $response->addContentDecorator(new Console\ResponseDecorator\Blockize());
 
         if (function_exists('posix_isatty')) {
-            $response->addContentDecorator(new ResponseDecorator\Colorizer());
+            $response->addContentDecorator(new Console\ResponseDecorator\Colorizer());
         }
         
         $response->addContentDecorator(new \Zend\Tool\Framework\Client\Response\ContentDecorator\Separator())
             ->setDefaultDecoratorOptions(array('separator' => true));
 
-        $optParser = new ArgumentParser();
+        $optParser = new Console\ArgumentParser();
         $optParser->setArguments($_SERVER['argv'])
             ->setRegistry($this->_registry)
             ->parse();

改めて…。

$ php zf.php show version
Zend Framework Version: 2.0.0dev1