gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:52:54 25 4
gpt4 key购买 nike

所以,我有一个问题,虽然基于 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com