1

我在app/Helpers目录中有一个 helper.php 文件。我将该文件包含在composer.json

...
        "files": [
            "app/Helpers/helpers.php"
        ]
...

助手工作正常,但我不能public_path()在那里使用方法。我需要包含另一个文件(请不要问我为什么,因为它是我不需要重写的旧代码)。所以我有以下内容:

require_once public_path() . '/appadmin/bootstrap.php';

我知道默认情况下 Laravel 会在/public/文件夹中查找,但我遇到了问题。如果我需要执行composer update,我必须使用public/appadmin/bootstrap.phphelper.php 中的路径,但在执行后我必须更改该路径以/appadmin/bootstrap.php进行正确的工作。这就是为什么我决定使用public_path()方法来接收这两种情况的正确路径。如果我使用它,我会收到一个错误:

 Generating optimized autoload files
    > Illuminate\Foundation\ComposerScripts::postUpdate
    Script Illuminate\Foundation\ComposerScripts::postUpdate handling
 the post-update-cmd event terminated with an exception


      [ReflectionException]             
      Class path.public does not exist  

提前致谢!

4

1 回答 1

0

您是否尝试过将您的应用程序更新到当前版本?

框架本身中有一些文件需要更新。

在https://github.com/laravel/laravel/tree/develop查看配置文件、引导文件server.php和启动文件。

您可以打开index.php(在您的公共目录中)并更改:

$app = require_once __DIR__.'/../bootstrap/app.php';

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});

现在,当您的公共目录发生更改时,您不需要更改您的公共路径。

于 2017-08-21T09:45:49.983 回答