symplify / package-scoper
v9.3.1
2021-05-04 18:51 UTC
Requires
- php: >=7.3
- symfony/console: ^4.4|^5.2
- symfony/dependency-injection: ^5.2
- symfony/http-kernel: ^4.4|^5.2
- symplify/composer-json-manipulator: ^9.3.1
- symplify/symplify-kernel: ^9.3.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- dev-main / 9.4.x-dev
- v9.3.1
- v9.3.0
- v9.2.24
- v9.2.23
- v9.2.22
- v9.2.21
- v9.2.20
- v9.2.19
- v9.2.18
- v9.2.17
- v9.2.16
- v9.2.15
- v9.2.14
- v9.2.13
- v9.2.12
- v9.2.11
- v9.2.10
- v9.2.9
- v9.2.8
- v9.2.7
- v9.2.6
- v9.2.5
- v9.2.4
- v9.2.3
- v9.2.2
- 9.2.1
- 9.2.0
- 9.1.9
- 9.1.8
- 9.1.7
- 9.1.6
- 9.1.5
- 9.1.4
- 9.1.3
- 9.1.1
- 9.1.0
- 9.0.50
- 9.0.49
- 9.0.48
- 9.0.47
- 9.0.46
- 9.0.45
- 9.0.44
- 9.0.43
- 9.0.42
- 9.0.41
- 9.0.40
- 9.0.39
- 9.0.38
- 9.0.37
- 9.0.36
- 9.0.35
- 9.0.34
- 9.0.33
- 9.0.32
- 9.0.31
- 9.0.30
- 9.0.29
- 9.0.28
- 9.0.27
- 9.0.26
- 9.0.25
- 9.0.24
- 9.0.23
- 9.0.22
- 9.0.21
- 9.0.20
- 9.0.19
- 9.0.18
- 9.0.17
- 9.0.16
- 9.0.15
- 9.0.14
- 9.0.13
- 9.0.12
- 9.0.11
- 9.0.10
- 9.0.9
- 9.0.8
- 9.0.7
- 9.0.6
- 9.0.5
- 9.0.4
- 9.0.3
- 9.0.2
- 9.0.1
- 9.0.0
- 9.0.0-rc1
- 9.0.0-BETA9
- 9.0.0-BETA8
- 9.0.0-BETA7
- 9.0.0-BETA6
- 9.0.0-BETA5
- 9.0.0-BETA4
- 9.0.0-BETA3
- 9.0.0-BETA2
- 9.0.0-BETA1
- 8.3.48
This package is auto-updated.
Last update: 2021-05-07 00:36:45 UTC
README
- 你的包需要Symfony 5,但开发者在使用Symfony 3吗?
- 你想将包依赖作用域设置在唯一命名空间中,但不知道如何操作?
- 你想跳过学习PhpScoper、PHAR打包、Box和GitHub Actions自动化部署吗?
你来到了正确的位置!
安装
composer require symplify/package-scoper symplify/monorepo-builder --dev
我们还需要symplify/monorepo-builder
,这样我们就可以使用本地包的相对路径。
使用
1. 生成php-scoper配置
php-scoper是一个包,它会给类和函数添加前缀,使它们唯一,避免与不同版本中同名类冲突。您可以阅读文档,或者使用合理的默认值生成配置
vendor/bin/package-scoper generate-php-scoper
它将在包的根目录下创建scoper.inc.php
。这是最佳位置,因为php-scoper与相对于其位置的路径一起工作。
2. 作用域Composer Json
使用php-scoper对PHP代码进行作用域仅仅是第一步。第二步是创建一个具有不同于原始包名称的composer.json
。我们已经为您准备好了!以下命令将
- 更新包名为
<original>-prefixed
- 保留
require
部分中的PHP版本、许可证和bin文件 - 删除其余部分
必须在作用域包的composer.json
上运行,而不是原始的
vendor/bin/package-scoper scope-composer-json <path-to-composer-json> vendor/bin/package-scoper scope-composer-json packages-scoped/some-package/composer.json
3. 生成GitHub Action工作流程
如果没有自动化,这个过程将不会有太大帮助。这就是为什么我们有GitHub Action来自动化它。
vendor/bin/package-scoper generate-workflow
前往您的.github/workflows
文件夹,手动更新包名,然后就可以开始了。
GitHub Action中的约定优于配置
在GitHub工作流程中,您只需定义包名。为了使整个过程生效,必须在以下位置使用<package-name>
- 目录名
/package/<package-name>
- 二进制文件名
/package/<package-name>/bin/<package-name>
因为文件是在composer.json
中定义的
{ "bin": [ "bin/<package-name>" ] }