4

Zend Frameworkの本では、初心者向けガイドです。それは言う:

ディレクトリの内容は、library/PHPの「インクルードパス」リスト内の場所に移動する必要があります。

理解できません。特定の場所にある特定のディレクトリを参照するパス保持値は含まれません。それはどういう意味ですか?または、「パスを含める」ですでに言及されている場所にフォルダを文字通り移動する必要がありますか?

4

2 に答える 2

10

PHPinclude_pathは、システムのPATH環境変数と同じ目的を果たします。

「実行するコマンドを探すときに検索するディレクトリのリストを定義します。」(ボブ・ランキン、2011年)。

andre matosによる前のコメントが示したように、ライブラリディレクトリをシステムのPHP include_pathディレクトリにコピーするか、php.iniファイルでPHPパス設定ディレクティブ'include_path'を設定して、ライブラリディレクトリをディレクトリとして含めることができます。 PHPが検索します。

どちらの方法を選択する場合でも、システムのPHPinclude_pathディレクトリを知っておく必要があります。システムのPHPinclude_pathディレクトリを見つけるには、次のいずれかを実行できます。

% php -i | grep include_path # assuming you are on Linux

-または、「phpinfo.php」などのファイルを作成し、次のphpコードを追加します。

<?php phpinfo(); ?>

PHPを介してファイルを実行します。

% php phpinfo.php | grep include_path

-または、「phpinfo.php」などのファイルをWebサーバーが認識しているディレクトリに追加し、WebブラウザでURLとして開き、「include_path」を検索します。

たとえば、私のシステムのPHPinclude_pathは次の場所にあります。/usr/lib64/php

最も簡単な方法は、おそらくライブラリディレクトリをシステムのPHP include_pathディレクトリ(例:/ usr / lib64 / php)にコピーすることですが、システムのphp.iniにPHPパス構成ディレクティブ'include_path'を設定することも同様に簡単です。ファイル。

システムのphp.iniファイルにPHPパス構成ディレクティブ「include_path」を設定するには、ファイルを開き、「パスとディレクトリ」セクションの下にある「include_path」パス構成ディレクティブを見つけます。次のようになります。

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

';'を削除します ご使用のオペレーティングシステムのPHP'include_path'パス構成ディレクティブから。

たとえば、Linuxを使用している場合は、次のようになります。

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

次に、PHPが検索するディレクトリとして、PHPの「include_path」パス構成ディレクティブをライブラリディレクトリに設定します。

たとえば、ZendFrameworkをにダウンロードしました

/usr/src/done/ZendFramework-1.11.4-minimal/

したがって、次のように、ZendFrameworkディレクトリ内にライブラリディレクトリを含めるようにPHPの'include_path'構成ディレクティブを設定する必要があります。

include_path = ".:/usr/lib64/php:/usr/src/done/ZendFramework-1.11.4-minimal/library"

システムのphp.iniファイルの「パスとディレクトリ」セクションは次のようになります。

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
include_path = ".:/usr/lib64/php:/usr/src/done/ZendFramework-1.11.4-minimal/library"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

php.iniファイル(上に表示)のPHP'include_path'構成ディレクティブに追加したディレクトリについて説明します。

'。' は現在のディレクトリ、「/ usr / lib64 /php」はシステムのPHPinclude_pathディレクトリ、「/ usr / src / done / ZendFramework-1.11.4-minimal/library」はのライブラリディレクトリへのパスです。 ZendFrameworkディレクトリ。PHPの「include_path」構成ディレクティブにリストされている各ディレクトリーは、「:」で区切る必要があることに注意してください(システムのPATH環境変数にリストされているディレクトリーと同じです)。

ディレクトリのリストをphp.iniファイルのPHPの「include_path」構成ディレクティブに追加したら、Webサーバーを再起動して変更をPHPに保存する必要があります。

例えば、% sudo apachectl restart # assumes you are using Apache as your web server

お役に立てれば、

//。エリオット

于 2011-04-15T04:29:42.763 に答える
1

ええと...あなたは両方を行うことができます。

にインクルードパスを追加しますphp.ini(のようなものを検索しますinclude_path

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;C:\PHP\pear;C:\PHP\otherfolder"

または、フォルダをすでに含まれているパスに移動します(前の検索を実行した後、どちらがパスであるかがわかりますphp.ini)。

あなたが次のようなことをするとき:

<?php include 'file.php'; ?>

ファイルが実行しているスクリプトと同じディレクトリ(。)にない場合、phpはphp.iniで定義されたインクルードパスを調べます。

于 2011-04-13T11:30:26.143 に答える