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路径。只需将文件及其相对路径加载即可。使用自动加载即可。您可以展示一个使用自动加载的示例吗?