WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

ZendFrameworkのコマンドラインツール・zfコマンドをインストールする

      2012/12/17

zfコマンドを利用する準備

ZendFrameworkでは、端末やコマンドプロンプト上から推奨ディレクトリ構成を一括で構築したり、ファイルの雛形を作ったりすることができるコマンドラインインターフェース(CLI)が提供されています。

ZendFrameworkのCLIはzfコマンドと呼ばれるもので、このコマンドに目的に合わせた引数を与えて実行することで、ZendFrameworkに関する様々な操作を行うことができます。

ZendFrameworkをダウンロードし、任意のディレクトリに設置してパスを通しただけでは、zfコマンドが使えるようになっているわけではありません。

# zf
zsh: command not found: zf

zfコマンドを使えるようにするには、以下の手順で設定を行います。
ここではZendFrameworkのバージョンが”1.11.2″、ZendFrameworkが設置されているディレクトリは”/usr/share/php/ZendFramework-1.11.2/”であることが前提で進めますので、この点は自身の環境に置き換えて設定を行って下さい。

# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# cd /usr/local/bin
# cp /usr/share/php/ZendFramework-1.11.2/bin/zf* ./
# mv zf.sh zf

これで、zfコマンドを実行できるようになったはずです。
動作確認がてらZendFrameworkのバージョンを確認するコマンドを実行してみましょう。

# zf show version
Zend Framework Version: 1.11.2

上記のようにZendFrameworkのバージョンが帰ってきたら成功です。

エラーが出た場合の対処法 その1

下記のようなエラーが出た場合について。

# zf show version
PHP Fatal error:  Cannot access self:: when no class scope is active in /usr/share/php/ZendFramework-1.11.2/library/Zend/Tool/Framework/Provider/Signature.php on line 358

Fatal error: Cannot access self:: when no class scope is active in /usr/share/php/ZendFramework-1.11.2/library/Zend/Tool/Framework/Provider/Signature.php on line 358

これは、Zend ToolコンポーネントがPHPのバージョンによって動作しないことが原因のようです。
以下参考記事からの抜粋。

Zend ToolコンポーネントがそのままではPHP 5.1系では動作しないことが確認できました。

古いPHPを利用した新しいZend Frameworkの利用法(1/2):CodeZine

この場合はPHPのバージョンアップを行うことによって解決する場合があります。
yumでPHPのバージョンアップを行う方法

 

エラーが出た場合の対処法 その2

下記のようなエラーが出る原因は、PHPがZendFrameworkを読み込めていないことです。

***************************** ZF ERROR ********************************
In order to run the zf command, you need to ensure that Zend Framework
is inside your include_path.  There are a variety of ways that you can
ensure that this zf command line tool knows where the Zend Framework
~(略)~

php.iniなどを編集して、パスを通す設定を追記しておくことで解決します。

 include_path = ".:/usr/share/php:/usr/share/php/ZendFramework-1.11.2/library:/usr/share/php/Smarty-2.6.26"

 - ZendFramework , , , ,