简体   繁体   English

如何在 Lumen 中定义 Helper 类?

[英]How to define a Helper class in Lumen?

I'm trying to create a Helper class using the Lumen Framework, but it's not working.我正在尝试使用 Lumen 框架创建一个 Helper 类,但它不起作用。

Files Structure文件结构

composer.json ./composer.json composer.json ./composer.json

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

Controller that is calling to the Helper Class ./app/Http/Controllers/UserController.php调用 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 Class ./app/Libraries/Helpers.php助手类./app/Libraries/Helpers.php

<?php

namespace App\Libraries;

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

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

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

Error in route路线错误

Whoops, looks like something went wrong.哎呀,看起来出事了。

I'm trying everything but the Helper class are not working.我正在尝试一切,但 Helper 类不起作用。

You forgot to add App in front of your namespace in the UserController .您忘记在UserController的命名空间前添加App

use App\Libraries\Helpers;

Also, there is no need to add the extra autoload rule in your composer.json.此外,无需在 composer.json 中添加额外的自动加载规则。 app/libraries is already in the first rule. app/libraries已经在第一条规则中。 All subfolders are always included.始终包含所有子文件夹。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM