Laravel 5.2: 如何为控制器创建通用函数?必须使用辅助函数吗?

5
我想创建一个可以被所有控制器调用的函数。
public function getSuffix($filename) {

    $first_char = substr($filename, 0 ,1);
    $sec_char = substr($filename, 1 ,1);
    $suffix ="";

    if($first_char!='.' && $first_char!='..')
        $suffix .= '/'.$first_char.'/';
    if($sec_char!='.' && $sec_char!='..')
        $suffix .= $sec_char.'/';

    return $suffix;
}

什么是最佳实践来进行这个操作?使用帮助类是我正在寻找的吗?
3个回答

7

在app/http文件夹内创建一个helpers.php文件。然后在你的composer.json文件中自动加载此文件。

"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Http/helpers.php"
        ]
    },

然后运行composer dump-autoload,您的问题就解决了。


3

首先,您需要在应用程序中创建一个名为CustomFolder的文件夹,并在custom文件夹中创建您的助手类,例如SimpleClass.php。

<?php
namespace App\CustomFolder;
class SimpleClass {

public function yourFunction(){
   return true;
} 

}

?>

当您在控制器中使用此辅助类时,只需添加命名空间即可,例如:
<?php

use App\CustomFolder\SimpleClass;
class MyController extends Controller{

}

?>

我认为你的辅助类完美地工作了。

1
创建基础类。
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BaseController extends Controller
{
    public function __construct()
    {
        //do some stuff
    }

    public function myFunction()
    {

    }
}

并且将所有的类都扩展为这个基类。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接