【问题标题】:is_file() returns false in Zend Framework 2 modelis_file() 在 Zend Framework 2 模型中返回 false
【发布时间】:2012-11-27 23:53:32
【问题描述】:

我正在学习 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)

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

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    为了澄清 Ards 的答案:

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

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

    最后一点:INI 解析(如 ZF1 中所做的那样)比 ZF2 样式(或者更确切地说是基本的 PHP)数组要慢得多;)您可能也想切换回基础。

    【讨论】:

      【解决方案2】:

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

      试试

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

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

      【讨论】:

      • var_dump(is_file('../module/Foo/src/Foo/Model/ldapconfig.ini')); (假)
      • var_dump(is_file('./ldapconfig.ini')); (假)
      • var_dump(is_file('module/Foo/src/Foo/Model/ldapconfig.ini')); (true) - 我不知道为什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多