0

我正在学习 Zend Framework 2,我正在尝试使用以下信息连接到 ldap:http: //framework.zend.com/manual/2.0/en/modules/zend.authentication.adapter.ldap.html

此行返回错误:$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 中的所有内容都基于 Projects ROOT Path。这是在 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 回答