laminas/laminas-migration

将 Zend Framework 项目或第三方库迁移到目标 Laminas/Expressive/Apigility

1.5.0 2022-11-15 21:39 UTC

README

🇷🇺 俄罗斯公民

我们是 Laminas 的参与者,出生并生活在我们国家的不同地方。我们中的许多人都有在俄罗斯和乌克兰的朋友、亲戚和同事。我们中的一些人生于俄罗斯。我们中的一些人现在生活在俄罗斯。我们中的一些人的祖父母在二战中与法西斯作战。在这里,没有人支持法西斯主义。

我们中的一员有一位乌克兰亲戚,她带着儿子从家里逃出来。火车因前方道路上的轰炸而延误。我们有一些朋友躲在防空洞里。我们在空袭后焦虑地关注他们,空袭不分青红皂白地向医院、学校、幼儿园和住宅投掷炸弹。我们不是从任何媒体上得知这些消息的。这是我们的亲身经历。

您足够信任我们,愿意使用我们的程序,我们请求您再次信任我们。我们需要您的帮助。走出家门,抗议这场无意义的战争。停止流血。说“不,战争!”

🇺🇸 致俄罗斯公民

我们 Laminas 团队来自世界各地。我们中的许多人都有在俄罗斯和乌克兰的朋友、家人和同事。我们中的一些人生于俄罗斯。我们中的一些人现在生活在俄罗斯。我们中的一些人的祖父母在二战中与纳粹作战。在这里,没有人支持法西斯主义。

我们团队成员中的一位有一位乌克兰亲戚,她带着儿子从家里逃出来。火车因前方道路上的轰炸而延误。我们有一些朋友躲在防空洞里。我们在空袭后焦虑地关注他们,空袭不分青红皂白地向医院、学校、幼儿园和住宅投掷炸弹。我们不是从任何媒体上得知这些消息的。这是我们的亲身经历。

您足够信任我们,愿意使用我们的软件。我们请求您在这件事上信任我们。我们需要您的帮助。走出家门,抗议这场无意义的战争。停止杀戮。说“停止战争!”

将 Zend Framework 项目或第三方库迁移到 Laminas、Expressive 和/或 Apigility。

此工具将迁移

  • Zend Framework MVC 项目,所有 v2 和 v3 版本。
  • Apigility 项目,所有版本
  • Expressive 版本,所有版本

更多详情,请参阅 文档常见问题解答

安装

通过 Composer

使用 Composer 全局安装库

$ composer global require laminas/laminas-migration

通过克隆

在某处克隆存储库

$ git clone https://github.com/laminas/laminas-migration.git

安装依赖项

$ cd laminas-migration
$ composer install

从那里,您可以将 bin/ 目录添加到您的 $PATH,将 bin/laminas-migration 脚本符号链接到您的 $PATH 中的目录,或者使用您的 shell 为 bin/laminas-migration 脚本创建别名

# Adding to PATH:
$ export PATH=/path/to/laminas-migration/bin:$PATH
# Symlinking to a directory in your PATH:
$ cd $HOME/bin && ln -s /path/to/laminas-migration/bin/laminas-migration .
# creating an alias:
$ alias laminas-migration=/path/to/laminas-migration/bin/laminas-migration

用法

迁移库或项目

要迁移库或项目到 Laminas,请使用 migrate 命令

$ laminas-migration migrate [--no-plugin] [--exclude=|-e=] [--keep-locked-versions] [path]

其中

  • [path] 是您要迁移的项目路径;如果省略,则命令假定当前工作目录。

  • [--no-plugin] 可以用来指定不向库或项目中添加 Composer 插件 laminas/laminas-dependency-plugin。我们不推荐使用此选项;该插件确保在 Zend Framework 包中嵌套的任何依赖都将安装 Laminas 版本。很少出现不希望这种行为的情况。

  • [--exclude=|-e=] 可以多次使用来指定要排除在迁移之外的 目录。例如,可能包括您的 data/cache/ 目录。

  • [--keep-locked-versions] 将在迁移开始之前将您的 composer.jsoncomposer.lock 包同步。这将确保即使删除了锁文件,项目也能保持相同的版本。因此,在运行 composer install(迁移完成后,您可以使用 diff 工具手动重新配置 composer.json)并通过仅使用 composer update --lock 更新 composer.lock。这不会触发任何更新,但会刷新 composer.lock 以再次与 composer.json 保持同步。请注意,我们鼓励升级到最新版本以避免意外问题。如果在迁移后使用此标志遇到问题,我们无法提供支持。

完成后,您可以检查哪些文件已更改,并检查 composer.json。运行 composer install 安装依赖项,然后测试您的应用程序。

强制嵌套依赖解析为 Laminas 包

如果使用 migrate 命令的 --no-plugin 选项,可以使用 nested-deps 命令手动迁移嵌套依赖。

$ laminas-migration nested-deps [path] [--composer=composer]

其中

  • [路径] 是您要执行操作的项目的路径;如果省略,则命令假定当前工作目录。

  • --composer 允许您提供自定义路径到 composer 二进制文件。

这将是一次性操作。如果您稍后添加依赖项或执行 composer update,您可能需要重新运行它。