2

include_path direcotoryにアクセスせずにZF(+そのコンソールツール)をインストールして使用することは可能ですか?... Zend / libraryディレクトリをinclude_pathに追加しようとしましたが、成功しませんでした。

私はそれをこのようにしました:

php -r 'set_include_path(get_include_path() . PATH_SEPARATOR . "/var/www/.../Zend/library")';

var_dump上記の関数の結果を取得した後、成功を意味する古いinclude_pathが返されました。しかし、get_include_path()を次に呼び出すと、古いパスも返されます。

また、環境変数を設定しようとしました。

ZF_INCLUDE_PATH_PREPEND="/var/www/.../Zend/library"

古いinclude_pathディレクトリに会社のフレームワークがあるので、ZFライブラリをそこにコピーすることはできません(できたとしても)。

include_pathのように、適切なフレームワークはグローバルPHP設定に依存すべきではないと思います。ZF内部設定ファイルのどこかにインクルードパスを設定できるはずだと思います。

編集:
zf.phpファイル に追加set_include_path('/var/www/.../Zend/library')しましたが、ツールが「間違ったinclude_path」エラーのスローを停止しました。実際、それはどんな出力でも印刷するのをやめました。コマンドを実行するときzf create project testは何もしません。〜/.zfフォルダーが作成されませんでした。

4

2 に答える 2

4

たとえば、「グローバル」インクルードパスでzfライブラリをコピーできない場合でも、プロジェクトがある場所にコピーして、そこからツール/usr/share/php/を起動できます。zf次のようなフォルダ構造:

/var/www/zf_tool
                `/bin/
                      `zf.sh
                      `zf.php
                `/library
                      `/Zend

Zendライブラリの下のフォルダと下のzf.shスクリプトzf.phpをコピーし、まだ実行可能でない場合はbin実行可能に設定します。chmod a+x zf.sh zf.php次に、実行する/var/www/project/bin/zf.shと、include_pathでzfファイルが検索されますが、そこにない場合は、1つのフォルダーに移動し、そのlibraryフォルダーに移動します。zfライブラリがそこに見つからない場合にのみ、エラーで停止します。結局、新しいzfプロジェクトの作成は次のように簡単です。

$ pwd
/var/www/zf_tool/bin
$ ./zf.sh create project /var/www/test_project

それでおしまい。HTH :)

于 2010-01-23T13:32:28.663 に答える
1

set / get include_path関数を使用すると、「リクエスト」の存続期間中のみ設定されるため、コマンド/Webリクエストが終了するとすぐに通常に戻ります。ローカルコピーのインクルードパスを設定する限り、試した環境変数または~/.zfボックスのフォルダーで設定できます。そこには設定があり、パスを含む設定があります。

それ以外にも、シェルスクリプトyoureにあるようなものをphp -r ...直接実行することもできますが、これは推奨される方法ではありません。

于 2010-01-18T21:16:42.767 に答える