phpgt / sync
本包最新版本(v1.3.0)没有提供许可证信息。
同步两个目录。
v1.3.0
2023-07-07 16:49 UTC
Requires
- php: >=8.0
- phpgt/cli: ^1.3
- webmozart/glob: 4.4.*
Requires (Dev)
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.1
- squizlabs/php_codesniffer: ^3.7
- dev-master
- v1.3.0
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.0
- v0.2.0
- v0.1.0
- v0.0.1
- dev-test-default-pattern
- dev-51-symlinks
- dev-dependabot/composer/phpunit/phpunit-9.6.5
- dev-dependabot/composer/phpstan/phpstan-1.10.6
- dev-dependabot/composer/webmozart/glob-4.6.0
This package is auto-updated.
Last update: 2024-09-17 16:50:31 UTC
README
rsync
是确保两个目录内容相同的工具,但在Unix系统中默认存在。此仓库提供简单的递归目录同步,使用纯PHP实现,兼容Linux、Mac和Windows。
示例用法
$source = "/var/www/example.com"; $destination = "/var/backup/example.com"; try { $sync = new DirectorySync($source, $destination); $sync->exec(DirectorySync::COMPARE_FILEMTIME); } catch(SyncException $exception) { fwrite(STDERR, "Error performing sync: " . $exception->getMessage()); exit(1); } echo "Sync complete!" . PHP_EOL; echo "Changed: " . count($sync->getCopiedFilesList()); echo "Deleted: " . count($sync->getDeletedFilesList()); echo "Skipped: " . count($sync->getSkippedFilesList());
特性
- 跨平台兼容的目录同步(Linux、Windows、Mac)。
- 通过glob匹配选择性同步(仅同步脚本目录下的js文件,使用
/script/**/*.js
)。 - 同步执行后获取已复制/删除/跳过的文件统计信息。
- 内存占用低。