is_file()在Zend Framework 2模型中返回false

时间:2012-11-27 23:53:32

标签: php zend-framework2

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

此行返回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)

上面代码的最后一行是在控制器调用的公共函数中。 有什么想法为什么会有不同的行为?

2 个答案:

答案 0 :(得分:1)

澄清Ards回答:

ZF2中的所有内容均基于Projects ROOT Path。这是使用chdir(dirname(__DIR__));在public / index.php上完成的。这意味着每个未来的包含都基于项目./

此外,我建议遵循最佳做法,并将配置文件放入配置文件夹./module/Foo/config/ldapconfig.ini。这比将配置文件放入模型源更有意义;)

最后一点:INI解析(在ZF1中完成)比ZF2-Style(或更基本的PHP)阵列慢得多;)你可能也希望切换回基础知识。

答案 1 :(得分:0)

我不确定Zend框架是如何设置的,但我认为当你执行代码时根路径是不同的

尝试

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

var_dump(is_file('./ldapconfig.ini'));