[英]Problem with constants in application.ini after PHP upgrade
我已经将本地开发系统上的PHP升级到了5.3.0版,并且在application.ini中使用常量时出现了一些问题-请按照手册http://framework.zend.com/manual/zh/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()似乎不能替换这样命名的常量。
简短测试-您需要两个文件:
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”(在两个文件中)并比较结果;)
您的问题可能与php 5.3.0中对'open_basedir'的更改有关
cf. http://www.php.net/manual/fr/ini.core.php#ini.include-path
open_basedir值可以在您的httpd.conf中,在php.ini中或在运行时使用ini_set()进行设置。 我建议您使用phpinfo()来查看此值,在您使用的2个PHP版本之间进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.