我们可以在Laravel控制器中拥有两个或多个类吗

Dun*_*kun 3 php solid-principles laravel laravel-5.2

考虑到接口隔离原理,它是面向对象编程中最“被谈论的”原理之一-SOLID原理,我想知道在单个Laravel控制器中是否可以有两个不同的类?例如:

  <?php

    namespace ...;

    use App\Http\Controllers\Controller;

    interface VehicleInterface
    {
      public function ...
    }

    class CarController extends Controller implements VehicleInterface
    {
       ...
    }

    class ElectricCar implements VehicleInterface
    { 
       ...
    }
Run Code Online (Sandbox Code Playgroud)

Wil*_*kun 5

从技术上讲,您可以在同一文件中具有多个类。

对于Laravel(或任何框架),如果要使用其自动加载器,则不是这样,因为惯例是classname = filename。

另外,控制器是处理请求的对象。您可以在控制器函数中加载不同类的尽可能多的实例。但是在控制器文件中定义其他类根本不是您要做的。