Lumen 5.4 Helper 类在全球范围内不可用
Posted
技术标签:
【中文标题】Lumen 5.4 Helper 类在全球范围内不可用【英文标题】:Lumen 5.4 Helper class not available globally 【发布时间】:2017-11-09 19:47:42 【问题描述】:我已经在
中创建了Helper函数流明\app\Helpers\Helpers.php
并添加
<?php
if(!function_exists('config_path'))
/**
* Return the path to config files
* @param null $path
* @return string
*/
function config_path($path=null)
return app()->getConfigurationPath(rtrim($path, ".php"));
在 compoer.json 中
,
"files": [
"app/Helpers/Helpers.php"
],
然后跑了
composer dump-autoload -o
composer dump-autoload
之后如果尝试在 web.php 中调用
$app->get('/', function () use ($app)
echo config_path();
);
出现以下错误
致命错误:调用未定义的函数 config_path() D:\xampp\htdocs\lumen\routes\web.php 第 17 行
【问题讨论】:
【参考方案1】:看起来web.php
在Helpers.php
之前执行。您可以做的最好的事情是将任何逻辑放入控制器、模型等中,并将路由仅保留在 web.php
中。
如果你不关心这个,你可以在index.php
中创建require()
helpers 文件,但同样,这是一个不好的做法。
【讨论】:
@Alexey.Ya 很糟糕,但我不知道为什么它不能在流明中工作。同样认为在 laravel 中工作正常 @Alexey.This helper 我用于 jwt 等 对于 laravel 本身,我认为它工作得很好,但对于 Lumen,我从来不需要因为一个小项目而有助手。如果 Lumen 有一个像 Laravel 这样的引导文件,需要你的助手在那里而不是在 public/index.php 中:/ @everytimeicob.ya 我已经添加到 bootstrap app.php 但 D:\xampp\htdocs\lumen>php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider" [Symfony \Component\Console\Exception\CommandNotFoundException] “供应商”命名空间中没有定义命令。不工作 @vision 这是另一个问题以上是关于Lumen 5.4 Helper 类在全球范围内不可用的主要内容,如果未能解决你的问题,请参考以下文章
在 Lumen 5.4 中注销后 JWT Auth 令牌不会失效