0

Zend Framework 2を学習しており、http: //framework.zend.com/manual/2.0/en/modules/zend.authentication.adapter.ldap.htmlの情報を使用してLDAPに接続しようとしています。

この行はfalseを返しています:$ configReader-> fromFile('foo.ini')

ソースを調べると、Zend \ Config \ Reader \ Ini is_file()がfalseを返します。アプリ全体を777に変更したので、権限は問題になりません。

私はあなたがここで見ることができるテストを設定しました:

app/public/ldapconfig.ini
app/public/isfiletest.php
--- var_dump(is_file('ldapconfig.ini')); (true)

app/module/Foo/src/Foo/Model/ldapconfig.ini
app/module/Foo/src/Foo/Model/Bar.php
--- var_dump(is_file('ldapconfig.ini')); (false)

上記のコードの最後の行は、コントローラーによって呼び出されているパブリック関数にあります。なぜ行動に違いがあるのか​​、何か考えはありますか?

4

2 に答える 2

1

Ardsの回答を明確にするために:

ZF2内のすべては、プロジェクトのルートパスに基づいています。これは、public/index.phpで。を使用して行われchdir(dirname(__DIR__));ます。これは、すべての将来のインクルードがプロジェクトに基づいていることを意味します./

さらに、ベストプラクティスに従って、構成ファイルを構成フォルダーに配置することをお勧めします./module/Foo/config/ldapconfig.ini。これは、構成ファイルをモデルソースに配置するよりもはるかに理にかなっています;)

最後の注意:INI解析(ZF1で行われるように)は、ZF2スタイル(または基本的なPHP)配列よりもはるかに低速です;)基本に戻すこともできます。

于 2012-11-28T09:13:26.337 に答える
0

Zendフレームワークがどのように設定されているかはわかりませんが、コードを実行するとルートパスが異なると思います

試す

var_dump(is_file('../module/Foo/src/Foo/Model/ldapconfig.ini'));

また

var_dump(is_file('./ldapconfig.ini'));
于 2012-11-28T00:13:19.260 に答える