laravel 5.2为控制器创建通用功能?必须使用帮手吗?

时间:2016-04-29 03:10:22

标签: php laravel-5.2

我想创建一个可以被所有控制器调用的函数

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 个答案:

答案 0 :(得分:6)

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

class HttpContextCurrentSessionIdProvider : ICurrentSessionIdProvider   
{
     // Pull this from a constructor parameter or however you see fit.
     private readonly HttpContext _httpContext;

     public SessionId => _httpContext.Current.Session.SessionId;
}  

然后运行composer dump-autoload你的问题解决了

答案 1 :(得分:1)

首先,您需要在应用程序中创建文件夹,如CustomFolder,并在自定义文件夹中创建帮助程序类,如SimpleClass.php

<?php
namespace App\CustomFolder;
class SimpleClass {

public function yourFunction(){
   return true;
} 

}

?>

在控制器中使用此辅助类时,可以简单地添加命名空间,如

<?php

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

}

?>

我觉得你的帮助班很完美。

答案 2 :(得分:1)

创建基类

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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

    public function myFunction()
    {

    }
}

并使用此基类扩展所有类。