phpsu/phpsu

同步工具:文件和数据库

4.2.1 2024-09-18 15:15 UTC

README

Latest Version Software License Coverage Status Infection MSI Total Downloads

此软件包符合PSR-1PSR-2PSR-4PSR-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

了解更多关于Docker的使用方法

要求

以下版本的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)。有关更多信息,请参阅许可证文件