【问题标题】:cake bake shell script fails (after cakephp2 => cakephp3 migration)cake bake shell 脚本失败(在 cakephp2 => cakephp3 迁移之后)
【发布时间】:2018-05-10 04:09:38
【问题描述】:

我目前正在从 2 => 3 迁移应用程序。每当我运行 cake/bake 时都会收到此错误:

Exception: Shell class for "-working" could not be found. in [/Users/david/Sites/otherland/app/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php, line 328]

当我查看提供给 ShellDispatcher 的参数时,我看到:

Array
(
    [0] => /Users/david/Sites/otherland/app/bin/cake.php
    [1] => -working
    [2] => /Users/david/Sites/otherland/app
    [3] => bake
)

显然,索引为 1 的参数是问题所在。我没有主动在 shell 中输入“-working”。我不知道这可能来自哪里。有谁知道这可能起源于哪里

【问题讨论】:

    标签: shell cakephp cakephp-3.0


    【解决方案1】:

    问题是我没有替换文件app/bin/cake(对于Windows 用户,这将是app/bin/cake.bat)。这些文件从 cake 2 到 3 有一些小的变化,需要替换它们。 (在这里找到他们https://github.com/cakephp/app/tree/master/bin

    编辑:cakephp 升级工具 (https://github.com/cakephp/upgrade) 有一个任务 (skeleton) 可以复制上述文件等。我没试过,但这似乎是解决问题的好方法。

    【讨论】:

    • 我可以建议您使用 composer 生成一个 cake 3 项目并使用 bake 生成新模型,然后手动从 cake 2 项目中移动代码。这使您可以从免费的单元测试开始,您可以使用这些测试来随时验证功能。是的,这需要更长的时间,但最终你会得到更好的结果。
    • @MathewFoscarini 这当然是一种方式,但我选择使用 3.x 升级工具,而不是您必须手动替换提到的文件。
    • 我居然忘了有个升级工具。如果这是工具遗漏的东西。您应该在 GitHub 项目上打开一个问题来提醒团队,因为这听起来像是应该做的事情。
    • 我只是看了一下升级工具的代码。有一个复制上述文件的任务——骨架任务。我的错误似乎是我没有运行该任务。我会相应地更新我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多