如何在整个项目中编写可访问的类?

时间:2016-12-13 11:24:58

标签: php laravel

我使用Laravel框架,这是我目前的目录:

enter image description here

如您所见,有一个名为Log 的类(我已选择的那个)。现在我需要让它全球化。我的意思是我想让它在任何地方都可以访问,并且能够在以下文件中创建它的对象(实例)

  • classe文件夹
  • 的所有文件
  • 所有控制器
  • web.php
  • 的文件
  • 所有观点文件

无论如何,我希望能够创建一个instande并在其他地方调用它的方法:

$obj = new Log();
$obj->insert($message);

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你可以create global Laravel helper

if (! function_exists('log')) {
    function log($message)
    {
        (new Log)->insert($message);
    }
}

将其放入helpers.php并将其添加到composer.json以加载帮助文件:

"autoload": {
    ....
    "files": [
        "app/someFolder/helpers.php"
    ]
},

然后,您将能够全局使用此帮助程序:

log('User added');

观点:

{{ log('User added') }}

<强>更新

@stack,你使用了错误的JSON语法(评论中的截图),这里是正确的:

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