如何使用命令行界面(CLI)重命名 laravel 控制器?
Posted
技术标签:
【中文标题】如何使用命令行界面(CLI)重命名 laravel 控制器?【英文标题】:How can i rename laravel controller with command line interface(CLI)? 【发布时间】:2016-12-19 12:54:44 【问题描述】:我创建了名称为Home
的控制器,但我想将其重命名为HomeController
。在 laravel 中可以吗?
例子:
class Home extends Controller
我想重命名它
class HomeController extends Controller
我想用 CLI 来做。
【问题讨论】:
很遗憾您不能使用 cli 重命名,您必须手动进行。重命名控制器时要考虑的事项:文件名、类名、路由、另一个控制器中的控制器注入。 您使用的是哪个操作系统?你为什么要这样做? 从 laravel 5.3 开始,您可以非常轻松地创建自己的 CLI 命令来手动执行此操作 【参考方案1】:您必须手动完成,没有任何命令可用于更新控制器名称。
【讨论】:
【参考方案2】:您不能使用artisan
,但您可以手动操作。但这不仅仅是简单的重命名。
你必须:
-
重命名 php 文件。
编辑 PHP 文件,为类赋予新的控制器名称(类名和文件名必须匹配)
将使用旧类名的任何代码更改为使用新类名
编辑自动加载文件以加载新的控制器文件:
vendor/composer/autoload_static.php
vendor/composer/autoload_classmap.php
【讨论】:
【参考方案3】:您可以使用nano
命令或vi
评估文件,这取决于您的机器。它基本上是一个编辑器,使您能够更改文件的内容。
【讨论】:
【参考方案4】:使用新名称创建一个新控制器。
php artisan make:controller NewController
or
php artisan make:controller NewController --resource
//if it is a resource controller
现在将所有内容从旧控制器复制到新控制器。
然后编辑所有路由(在 web.php 中)到该控制器。
【讨论】:
【参考方案5】:忘记 CLI 为什么不尝试使用 'AS' 重命名控制器
use app\MyController as MyControl;
【讨论】:
【参考方案6】:我认为这样做composer dump-autoload
会重新生成文件:
【讨论】:
以上是关于如何使用命令行界面(CLI)重命名 laravel 控制器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 7 中重命名文件夹:名称中包含空格的命令行 [关闭]