set_include_pathの使い方

phpでget_include_path()という関数を使うと、include_pathの設定を取得できます。

get_include_path

こんな感じです。


そして、set_include_path()という関数を使うと任意のinclude_pathを設定できます。

set_include_path


例えば、/home/testにライブラリをインストールした場合、

のようにすることで、include_pathを追加することができます。


確認してみると

正しく追加されています。


PATH_SEPARATOR定数を用いる事で、OSに依存しないinclude_pathの設定が可能になります。

参考URL:OSの判別

インクルードパスの区切り文字は、Windowsが「:」(コロン)で、Linuxなどは「;」(セミコロン)です。

※ 参考サイトにはこのように書かれていましたが、Windowsが「;」でLinuxが「:」の誤りだと思います。

  • この話のキッカケ

Symfony1.0でZend Frameworkを呼び出す方法が分からず、悩んでいたときに先輩にset_include_pathの使い方を教えていただきました。

lib/vendor/Zend

Zend Frameworkが置いてあるとすると


Symfony1.0では

set_include_path(get_include_path() . PATH_SEPARATOR . sfConfig::get('sf_lib_dir') . '/vendor/');

をindex.phpに記述すればZend Frameworkが呼び出せると思います。
(今回はSymfonyのバッチファイル内での利用であったため、バッチファイルに記述しました。)


Symfony1.4ではconf/autoload.ymlに記述することで呼び出せます。

autoload:
  zend_framework:
    name:      zend_framework
    path:      %SF_LIB_DIR%/vendor/
    recursive: on

Symfony(1.4)でZendのライブラリを使う。