如何使用命令行界面(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 会重新生成文件:

供应商/作曲家/autoload_static.php 供应商/作曲家/autoload_classmap.php

【讨论】:

以上是关于如何使用命令行界面(CLI)重命名 laravel 控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 7 中重命名项目

如何在 Windows 7 中重命名文件夹:名称中包含空格的命令行 [关闭]

AWS:使用 Elastic Beanstalk 命令行界面 (EB CLI) 3.x SSH 到 EC2

从命令行重命名多个文件[重复]

广播到推送器时如何重命名 Laravel 事件?

windows下使用cmd重命名文件名