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

Php 如何在整个项目中编写一个可访问的类?,php,laravel,Php,Laravel,我使用Laravel framework,这是我当前的目录: 如您所见,有一个名为Log(我选择的那个)的类。现在我需要让它全球化。我的意思是,我想让它在任何地方都可以访问,并能够在以下文件中创建它的对象(实例): classe文件夹的所有文件 所有控制器 web.php 所有视图文件 无论如何,我希望能够制作它的一个实例,并像这样到处调用它的方法: $obj = new Log(); $obj->insert($message); 我该怎么做?您可以: 将其放入helpers.p

我使用Laravel framework,这是我当前的目录:

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

  • classe
    文件夹的所有文件
  • 所有控制器
  • web.php
  • 所有视图文件
无论如何,我希望能够制作它的一个实例,并像这样到处调用它的方法:

$obj = new Log();
$obj->insert($message);
我该怎么做?

您可以:

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

"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"
    ]
},

似乎是正确的,谢谢你,向上投票。。仅供我参考,我不能制作一个Facades吗?@stack Facades用于静态方法,如果你想要一个实例,facade不适合你的情况。你可以,但是,对于这种情况,使用全局帮助程序是更可靠、更易于使用的解决方案。您能告诉我您的解决方案与您提供的链接中的其他解决方案有什么区别吗?你们俩都用过助手,对吗?那有什么不同?哦,对不起,我现在明白了。我的解决方案使用composer加载文件。另一个解决方案是手动加载一堆文件。
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers/helpers.php"
    ]
},