这就是我在配置文件中的内容:
define('BASE_DIR', str_replace('\\', '/', realpath(dirname(__FILE__))) . '/', false);
// output: C:/xampp/htdocs/myweb/
define('BASE_URL', $protocol . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/', false);
//output: http://localhost/myweb/
define('APP_DIR', BASE_DIR . 'app/', false);
// output: C:/xampp/htdocs/myweb/app/
define('TEMP_DIR', BASE_DIR . 'app/view/template/', false);
//output: C:/xampp/htdocs/myweb/app/view/template/
define('LIBRARY_DIR', BASE_DIR . 'library/', false);
//output: C:/xampp/htdocs/myweb/library/
define('SYSTEM_DIR', BASE_DIR . 'system/', false);
//output: C:/xampp/htdocs/myweb/system/
我在索引文件中包含上述文件,然后包含一个类似
的文件initialize.php的index.php
// Include the config file. If file not found throw error and exit.
if (!file_exists('config.php')) {
header('Location: error/404.php');
exit();
} else {
include_once 'config.php';
}
// Load startup file to check, set environment plus a few core files
require_once SYSTEM_DIR . 'initialize.php';
initialize.php执行一些检查并设置应用程序所需的一些参数。
这很好但最近我切换到PhpStorm并且IDE说
无法解析表达式
'str_replace('\\', '/', realpath(dirname(__FILE__)))/system/initialize.php'
的目标(在第27行)。
这是什么问题?如果表达式的目标没有得到解析,那么它如何仍然包含初始化文件。
答案 0 :(得分:3)
您看到的警告只是一个IDE警告,它不会导致任何问题。 IDE无法知道您要包含哪些文件,因为表达式太复杂了。
IDE通常会扫描项目中的所有PHP文件。因此,即使未正确解析include/require
,IDE仍会知道所有PHP文件中的所有类/函数。