1

好吧,我一直听说你最好不要在 php 中使用静态方法,我在某种程度上可以理解,但是对我来说有一些困惑,我想知道的是:

假设我正在编写一个应用程序,我定义了数百个类(或者使用已经包含数百个不同类的框架),我不知道是否应该为每个小任务创建一个类,所以假设我创建一个用于处理特定项目(例如博客文章)的所有 CRUD 任务的类,并且该类处理查看、保存、编辑等,在这种情况下,如果我每次都实例化该类,它将创建一个包含主要方法的对象我们不需要那个请求,所以......我想我想问的是:

这样做是否明智?创建包含许多我们在每个请求中不使用的方法的类,并将它们定义为非静态的,所以每次我们都必须实例化整个对象?

就像 Laravel 对其控制器所做的那样,我们定义了所有非静态方法来处理与某个路由组相关的所有任务,并在每次我们想要访问其中的一两个方法时实例化整个控制器。

提前感谢您的时间和耐心。我很感激。

4

1 回答 1

1

您在大多数框架中看到的是 CRUD 是在 Controller 中编写的。这是它应该的方式。

一个控制器有多个操作(创建、读取、更新和删除)。问题是这些方法并非全部被调用和执行。如果你想阅读你的博客文章,唯一会被执行的是阅读动作。

您可以将其与驾驶汽车进行比较。您可以在一个“车库”中存放多辆“汽车”,但一次只能驾驶一辆。

添加更多信息。当您创建一个类的实例时:

$class = new myClass();

唯一会被调用(如果存在)的是constructor.

public function __construct()
{
    // Instantiation logic here
}

通过创建此类的实例,您实际上并没有执行所有方法。您只需让它们可供使用。(比如打开车库门,把车钥匙递给你:D)

于 2016-06-22T12:57:36.507 回答