zendライブラリを開くと、Aclという名前のフォルダとAcl.phpが表示されます。これは、Zendの他のライブラリにも当てはまります。なぜゼンドがそうしているのだろうか?この背後にある論理は何ですか?
2 に答える
これは次の理由によるものです。
- クラスの命名規則
- クラス<->ファイル名(パス)関係の規則
他のクラスに関連するクラスがある場合は、それに応じて名前を付けるのが論理的です。たとえばZend_Form_Element
、Zend_Form
。
これで、クラス名とファイル名/パスの関係に到達しました。_
ルールは単純なので、クラス名を/
ファイルパスに置き換えると、次のようになります。
Zend_Form
-> Zend/Form
(.php)
と
Zend_Form_Element
-> Zend/Form/Element
(.php)
これは、ファイルForm.php
とディレクトリを取得する方法ですForm
。
そうするので、コードを書く必要はありませんrequire_once'Zend/Acl.php'
Zendは、オートローダーをsplオートローダースタックに登録します。あなたがするとき
$acl = new Zend_Acl();
を必要としないか、含める必要はありません。PHPは、ZendオートローダーにクラスZend_Aclの定義が見つかるファイルを見つけるように依頼します。Zendオートローダーが応答として行うことは、入力「Zend_Acl」'_'
をディレクトリセパレータに置き換え、最後に「.php」拡張子を追加してinclude('Zend/Acl.php') ;
、それ自体で実行することです。
ライブラリディレクトリはphpinclude_pathの一部であるため、機能します。