【问题标题】:How can i rename laravel controller with command line interface(CLI)?如何使用命令行界面(CLI)重命名 laravel 控制器?
【发布时间】:2016-12-19 12:54:44
【问题描述】:

我创建了名称为Home 的控制器,但我想将其重命名为HomeController。在 laravel 中可以吗?

例子:

class Home extends Controller { }

我想重命名它

class HomeController extends Controller { }

我想用 CLI 来做。

【问题讨论】:

  • 很遗憾您不能使用 cli 重命名,您必须手动进行。重命名控制器时要考虑的事项:文件名、类名、路由、另一个控制器中的控制器注入。
  • 您使用的是哪个操作系统?你为什么要这样做?
  • 从 laravel 5.3 开始,您可以非常轻松地创建自己的 CLI 命令来手动执行此操作

标签: php laravel controller


【解决方案1】:

您必须手动完成,没有任何命令可用于更新控制器名称。

【讨论】:

    【解决方案2】:

    您不能使用artisan,但您可以手动操作。但这不仅仅是简单的重命名。

    你必须:

    1. 重命名 PHP 文件。
    2. 编辑 PHP 文件,为类赋予新的控制器名称(类名和文件名必须匹配)
    3. 将使用旧类名的任何代码更改为使用新类名
    4. 编辑自动加载文件以加载新的控制器文件:
    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

            【讨论】:

              猜你喜欢
              • 2013-08-29
              • 2016-12-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-04-20
              • 2016-11-10
              • 2015-05-06
              相关资源
              最近更新 更多