phpsu / phpsu
同步工具:文件和数据库
4.2.1
2024-09-18 15:15 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- composer-runtime-api: ^2.0.0
- ext-json: *
- phpsu/shellcommandbuilder: ^2.0
- symfony/console: ^5.0 || ^6.0 || ^7.0
- symfony/process: ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- infection/infection: ^0.28.1
- phpunit/phpunit: ^10.5.18
- pluswerk/grumphp-config: ^7.0.1
Suggests
- bamarni/composer-bin-plugin: Dependency-Independent use of phpsu
- dev-main
- 4.2.1
- 4.2.0
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.1
- 4.0.0
- 3.1.0
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 2.0.0-rc1
- 1.1.0
- 1.0.0
- 1.0.0-beta5
- 1.0.0-beta4
- 1.0.0-beta3
- 1.0.0-beta2
- 1.0.0-beta1
- 1.0.0-alpha3
- 1.0.0-alpha2
- 1.0.0-alpha1
- dev-addRemoveNoAutoCreateUser
- dev-feature/dependency-injection
- dev-feature/extend-info-command
- dev-feature/init-command
This package is auto-updated.
Last update: 2024-09-18 15:16:27 UTC
README
此软件包符合PSR-1、PSR-2、PSR-4和PSR-12规范。如果您发现规范上的疏忽,请通过pull request发送补丁。
安装
通过Composer安装
composer require --dev phpsu/phpsu
通过Composer安装,存在冲突版本
如果您遇到版本冲突问题,例如symfony<5,可以使用composer-bin-plugin。
composer require --dev bamarni/composer-bin-plugin composer bin phpsu require --dev phpsu/phpsu # we recommend to install it with the auto installation scripts: composer config scripts.bin "echo 'bin not installed'" composer config scripts.post-install-cmd '@composer bin all install --ansi' composer config scripts.post-update-cmd '@composer bin all update --ansi' echo '/vendor-bin/**/vendor' >> .gitignore
通过Docker安装
如果您想通过Docker使用phpsu,我们有一个最小的phpsu Docker镜像:phpsu/phpsu。
您可以通过类似以下方式执行任何phpsu命令
docker run --rm -it -u $(id -u):$(id -g) -v $(pwd):/app -v ~/.ssh:/home/phpsu/.ssh phpsu/phpsu:latest phpsu ssh production
要求
以下版本的PHP被此版本支持。
同步所需的包括
bash
在执行系统上(并且ssh用户需要有支持set -o pipefail
的shell(例如,在debian上不是sh,因为它是dash且不工作))ssh
在执行系统上rsync
在执行系统上mysqldump
在源系统上mysql
在目标系统上
不幸的是,我们目前不支持Windows。
文档
完整的文档可以在/docs
目录中找到。
配置示例
简单的配置示例 phpsu-config.php
<?php declare(strict_types=1); $globalConfig = new \PHPSu\Config\GlobalConfig(); $globalConfig->addFilesystem('Image Uploads', 'var/storage') ->addExclude('*.mp4') ->addExclude('*.mp3') ->addExclude('*.zip') ->addExcludes(['*.jpg', '*.gif']); $globalConfig->addSshConnection('hostA', 'ssh://user@localhost:2208'); $globalConfig->addAppInstance('production', 'hostA', '/var/www/') ->addDatabase('app', 'production01db', 'root', 'password', '127.0.0.1', 3307) ->addExclude('one_single_table_name') ->addExclude('/cache/') ->addExclude('/session$/') ->addExcludes(['/log/']); $globalConfig->addAppInstance('local') ->addDatabase('app', 'testingLocal', 'root', 'root'); return $globalConfig;
CLI 示例
phpsu sync production --dry-run phpsu sync p --no-db phpsu sync p --no-fs phpsu sync production testing --all
贡献
为贡献安装
git clone git@github.com:phpsu/phpsu.git
cd phpsu
composer install
测试
composer test
您还可以在保存时立即检查您所做的任何更改是否会影响您的测试
composer test:watch
如果您看到低变异分数指标(MSI)
值,您可以通过显示逃逸的变异来查看
composer infection -- -s
如果您在Pull Request中遇到不想要的BC中断,您可以在本地使用Docker运行相同的测试
docker run --rm -v `pwd`:/app nyholm/roave-bc-check --format=markdown > results.md
安全
如果您发现任何安全相关的问题,请通过git@kanti.de发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。