php - Laravel/PHP 命名空间路径的简写

标签 php laravel class namespaces

所以,我有一个问题,虽然基于 Laravel,但最终可能只是 PHP 中的一些基本问题,我要么错过了,要么忘记了。或者可能只是没有“教科书/干净/标准”的方法来做到这一点。

杂乱问题

无论如何,我在 Laravel 中创建了相当多的表单请求(这是一个相当大的“应用程序”),并且我经常对它们的包含是多么不必要的冗余感到震惊:

<?php

namespace App\Http\Controllers\Account;    

use App\Http\Requests\SubscriberRequest;
use App\Http\Requests\SubscriberUpdateRequest;
use App\Http\Requests\SubscriberExtRequest;
use App\Http\Requests\SubscriberExtUpdateRequest;

class MailingListController extends BaseController
{


    public function store(SubscriberRequest)
    {
      // code here
    }


    public function update(SubscriberUpdateRequest)
    {
      // code here
    }


    public function ExtCreate(SubscriberExtRequest)
    {
      // code here
    }

    public function ExtUpdate(SubscriberExtUpdateRequest)
    {
      // code here
    }

}

替代方案

将其放在上面可以消除 Controller 本身的困惑,但最终会增加创建和维护的工作量。我发现这样做更容易:

<?php

namespace App\Http\Controllers\Account;    


class MailingListController extends BaseController
{


    public function store(\App\Http\Requests\SubscriberRequest)
    {
      // code here
    }


    public function update(\App\Http\Requests\SubscriberUpdateRequest)
    {
      // code here
    }


    public function ExtCreate(\App\Http\Requests\SubscriberExtRequest)
    {
      // code here
    }


    public function ExtUpdate(\App\Http\Requests\SubscriberExtUpdateRequest)
    {
      // code here
    }

}

问题

显然,这两种方式都是“好”且“有效”的。这并不是一个高度优先的问题。但表单请求都来自同一个命名空间。当我使用几十个 Controller 时,打字/复制可能会变得乏味。

那么,考虑到所有这些,是否有一个“理想的”基于 PHP 类的解决方案来解决这个问题?如果做不到这一点,我应该诉诸应用程序范围的常量/变量吗? (或者还有其他人会推荐的技巧吗?)

最佳答案

如果您使用的是 php 7+

这是一个保持命名空间包含更干净的好方法。

use some\namespace\{ClassA, ClassB, ClassC as C};

关于php - Laravel/PHP 命名空间路径的简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54186138/

相关文章:

php - 为 findBy 学说存储库函数返回具有特定键的关联数组

php - 在 Laravel 中获取列类型

Swift iOS - 类对象类型是否比 "Primitive"类型消耗更多内存?

php - laravel中登录用户的查询结果

php - 如何使用 Laravel 管理数据库表中的 'order' 列?

class - 使用 Moq 模拟具体类时如何使用接口(interface)参数调用构造函数

java - 如何从 if-else 语句创建/实例化对象?

php - 带链接元素的中心 div

php - MYSQL查询产生错误

mysql - SQL 查询在数据库客户端中有效,但在 Laravel 应用程序中无效