我正在尝试转换100个型号+数百个控制器&从cakephp 2.6.7到cakephp 3.0.7的观点。
我使用升级shell工具尝试了以下内容:
然后,文档给我留下了很多问题......
升级工具提供了一个独立的应用程序,可用于升级其他应用程序或cakephp插件。每个子命令都接受指向要升级的应用程序的路径。
cd / path / to / upgrade
bin / cake升级全部/ home / mark / Sites / my-app
bin / cake upgrade skeleton / home / mark / Sites / my-app
bin / cake升级位置[路径]
bin / cake upgrade namespaces [path]
bin / cake升级app_uses [路径]
首先......我已经在E:\ my-app!
第二...运行“蛋糕升级位置E:\ my-app”(第一个任务命令)后,没有任何内容被修改,也没有文件被移动。实际上,如果我运行文档中列出的每个命令并且从不使用“all”命令,则\ src文件夹几乎为空。它确实包含Templates文件夹!
\ app文件夹仍然包含所有控制器,视图,模型。
没有表格,实体等
我可以使用一些提示来了解我需要以不同方式看到的内容。非常感谢任何帮助。
答案 0 :(得分:2)
首先,升级shell是一个独立的应用程序,您应该单独安装它,即在项目的单独文件夹(例如E:\cakephp-upgrade\
),不中安装它夹!此外,在使用all
命令时,不必再次运行单个命令,如果您必须这样做,它将使all
命令变得毫无用处。
话虽如此,未移动文件的问题源于两个问题
传递给升级shell的路径必须以目录分隔符结束,否则shell将在某个时刻使用双分隔符,因为分隔符保留在路径when the root is being stripped from it中( {{ 3}} 强>)。
如果不使用GIT,并且文件需要移动和更改,则文件不会写入正确的目标路径https://github.com/cakephp/upgrade/issues/89( but to the source path < /强>)。
请在GitHub上https://github.com/cakephp/upgrade/issues/90结束。
不幸的是,GIT的使用似乎也是错误的( report this as an issue ),但我现在懒得跟踪它。所以,除非这一切都已解决,否则您应该能够通过手动运行 all 命令来解决这些问题,这样就可以首先移动文件了,这似乎工作正常。
因此,假设升级应用已安装在E:\cakephp-upgrade\
中,并且您的项目位于E:\my-app
,那么您可以
E:
cd cakephp-upgrade
bin\cake upgrade locations E:\my-app\
bin\cake upgrade namespaces E:\my-app\
bin\cake upgrade app_uses E:\my-app\
bin\cake upgrade rename_classes E:\my-app\
bin\cake upgrade rename_collections E:\my-app\
bin\cake upgrade method_names E:\my-app\
bin\cake upgrade method_signatures E:\my-app\
bin\cake upgrade fixtures E:\my-app\
bin\cake upgrade tests E:\my-app\
bin\cake upgrade i18n E:\my-app\
bin\cake upgrade prefixed_templates E:\my-app\
bin\cake upgrade skeleton E:\my-app\