Laravel - 如何在没有实例化对象的情况下调用静态函数

boo*_*rak 4 php oop model-view-controller web laravel

在Laravel(5.2)中是否有任何方法可以在自定义对象中调用静态和/或非静态函数,而无需在使用它的所有类中实例化引用对象?

示例:我有App\Helpers\Utilities.php具有公共功能的类doBeforeTask()

我在我的项目中的所有类中使用此方法,如果我可以调用Utilities::doBeforeTask()Utilities->doBeforeTask()不创建Utilities对象的实例,那将是非常好的$obj = new Utilities();

小智 8

将您的方法定义为静态方法.并使用以下代码在任何地方调用它:

Utilities::doBeforeTask();
Run Code Online (Sandbox Code Playgroud)

文件App\Helpers\Utilities.php的代码结构

namespace App\Library;

class Utilities {

 //added new user
 public static function doBeforeTask() {
  // ... you business logic.
 }
}
Run Code Online (Sandbox Code Playgroud)


Ter*_*nal 6

将您的方法定义为静态方法。并在任何地方调用它

让我们举个例子

 namespace App\Http\Utility;

    class ClassName{

        public static function methodName(){
         // ... you business logic.
        }
    }
Run Code Online (Sandbox Code Playgroud)

要使用的地方指定名称空间

像这样:

use App\Http\Utility\ClassName;

ClassName::methodName();
Run Code Online (Sandbox Code Playgroud)

别忘了奔跑

composer dump-autoload
Run Code Online (Sandbox Code Playgroud)