Php 打开所需文件失败
我正在尝试从控制器内部写入控制台:Php 打开所需文件失败,php,Php,我正在尝试从控制器内部写入控制台: private function _getHintsFromList($list, $curated = false) { set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path()); require('../../FirePHPCore/FirePHP.class.php'); $firephp = FirePHP::get
private function _getHintsFromList($list, $curated = false) {
set_include_path(dirname(dirname(__FILE__)).'/lib'.PATH_SEPARATOR.get_include_path());
require('../../FirePHPCore/FirePHP.class.php');
$firephp = FirePHP::getInstance(true);
$firephp->fb('Hello World');
}
我得到这个错误:
{"error":true,"message":"App\\Http\\Controllers\\HintController::_getHintsFromList(): Failed opening
required '..\/..\/FirePHPCore\/FirePHP.class.php' (include_path='\/var\/www\/build\/app\/Http\/lib:
.:\/usr\/share\/php:\/usr\/share\/pear')"}
我检查了多次,Firehpcore文件夹是控制器所在位置的2个文件夹:
我做错了什么以及如何修复它?通常,您必须在
index.php
文件中指定包含的文件。自动加载的功能也是如此:
index.php:
...
set_include_path(get_include_path().PATH_SEPARATOR.'app/');
function __autoload($class){ // autoloader
require_once($class.'.php');
}
...
然后可以按如下方式调用函数:
class HintController{
...
private function _getHintsFromList($list, $curated = false) {
$firephp = \FirePHP::getInstance(true);
$firephp->fb('Hello World');
}
...
}
set\u include\u path()
在这种情况下不起作用。必须考虑执行上下文(CLI、HTTP服务器等)。
更清晰、更简单、更容易出错只需执行以下操作:
$path = dirname(dirname(__FILE__));
require $path . '/../../FirePHPCore/FirePHP.class.php';
它应该适合你的情况。稍后,您可以考虑查看<代码> AutoLoad 方法以及相关的事项,如./P>如果文件从当前所在的位置增加到4个目录,则需要“代码>要求”一次..…//..…/FiphpCyp/Fiphph.class .php < /代码>。您可能不应该在函数中调用require
。这将在每次调用函数时加载文件,并且在尝试重新定义类时会出现致命错误。至少应该是require\u once
,但更常见的情况是,您会将require\u once放置在函数外部,类定义外部。您听说过吗?您不应该在此处修改include\u路径。只需将文件及其相对路径加载即可。使用自动加载即可。您可以展示一个使用自动加载的示例吗?