PHP升级后application.ini中的常量问题

时间:2010-06-18 08:50:31

标签: php zend-framework

我已经将我的本地开发系统上的PHP升级到版本5.3.0,并且当我在application.ini中使用常量时出现了一些问题 - 请按照手册http://framework.zend.com/manual/en/learning.quickstart.create-project.html进行操作:

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"

导致:

Warning: require_once(APPLICATION_PATH/Bootstrap.php) [function.require-once]: failed to open stream: No such file or directory in Zend\Application.php on line 320

任何想法?


解决:

实际上我的常量名是_DIR_APPLICATION(上面的代码是从ZF手册中复制的) - 问题在于开头的下划线 - 似乎PHP 5.3.0中的parse_ini_file()不会替换这样命名的常量。 / p>

简短测试 - 您需要两个文件:

test.ini

bootstrap.path = _DIR_APPLICATION "/Bootstrap.php"
bootstrap.class = "Bootstrap"

和test.php

<?php

define('_DIR_APPLICATION', 'test');

$data = parse_ini_file('test.ini');
print_r($data);

尝试运行,然后将常量名称更改为“DIR_APPLICATION”(在两个文件中)并比较结果;)

1 个答案:

答案 0 :(得分:0)

您的问题可能与php 5.3.0中对'open_basedir'的更改有关。

比照http://www.php.net/manual/fr/ini.core.php#ini.include-path

open_basedir值可以在httpd.conf中设置,在php.ini中或在运行时使用ini_set()设置。 我建议用phpinfo()查看这个值,比较你正在使用的2个PHP版本。