如何在 Lumen 中定义一个 Helper 类?

Posted

技术标签:

【中文标题】如何在 Lumen 中定义一个 Helper 类?【英文标题】:How to define a Helper class in Lumen? 【发布时间】:2020-05-07 12:11:48 【问题描述】:

我正在尝试使用 Lumen 框架创建一个 Helper 类,但它不起作用。

文件结构

composer.json ./composer.json

    [...]
    "autoload": 
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": 
            "App\\": "app/",
            "App\\Libraries\\": "app/Libraries"
        
    ,
    [...]

正在调用 Helper 类的控制器 ./app/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use \Libraries\Helpers;

class UserController extends Controller 

  /**
   * Show a list of all of the application's users.
   *
   * @return Response
   */
  public function index() 
    return Helpers::test();
  


Helper 类 ./app/Libraries/Helpers.php

<?php

namespace App\Libraries;

class Helpers 
  public function test() 
    return "test";
  


调用 UserController@index ./routes/web.php

    [...]
    $router->get('/', 'UserController@index');
    [...]

路线错误

哎呀,好像出了点问题。

我正在尝试所有方法,但 Helper 类不起作用。

【问题讨论】:

除了下面给出的答案...您还尝试将非静态方法称为静态方法。当您想将此方法称为静态时,而不是 public function test() 将您的方法定义为静态 (public static function test() ) 【参考方案1】:

您忘记在 UserController 的命名空间前添加 App

use App\Libraries\Helpers;

此外,无需在 composer.json 中添加额外的自动加载规则。 app/libraries 已经在第一条规则中。始终包含所有子文件夹。

【讨论】:

以上是关于如何在 Lumen 中定义一个 Helper 类?的主要内容,如果未能解决你的问题,请参考以下文章

lumen可以使用laravel-ide-helper

如何将自定义方法添加到 Lumen 的响应类

如何在 Lumen 中定义外观?

Auth 尝试方法在 Laravel/Lumen + JWT + 用户自定义模型中如何工作

lumen添加自定义异常

在 Lumen 7 中验证时如何返回自定义 JSON 数组名称和内部元素?