mathiasreker/php-chmod

php-chmod 是一个用于轻松递归更改文件/目录权限的 PHP 库。

2.1.5 2024-01-01 14:42 UTC

This package is auto-updated.

Last update: 2024-09-18 08:56:18 UTC


README

Packagist Version Packagist Downloads CI status Contributors Forks Stargazers Issues MIT License

php-chmod 是一个用于轻松递归更改文件/目录权限的 PHP 库。

✅ 支持字面八进制表示法(0o)

版本 & 依赖项

需求

  • PHP >= 7.4
  • php-extension ext-mbstring

安装

运行

composer require mathiasreker/php-chmod

示例

dry run

<?php

use MathiasReker\PhpChmod\Scanner;

require __DIR__ . '/vendor/autoload.php';

$result = (new Scanner())
    ->setDefaultFileMode(0644)
    ->setDefaultDirectoryMode(0755)
    ->setExcludedFileModes([0400, 0444, 0640])
    ->setExcludedDirectoryModes([0750])
    ->scan([__DIR__])
    ->dryRun();

var_dump($result); // string[]

修复

<?php

use MathiasReker\PhpChmod\Scanner;

require __DIR__ . '/vendor/autoload.php';

(new Scanner())
    ->setDefaultFileMode(0644)
    ->setDefaultDirectoryMode(0755)
    ->setExcludedFileModes([0400, 0444, 0640])
    ->setExcludedDirectoryModes([0750])
    ->scan([__DIR__])
    ->fix(); // void

文档

$result = new Scanner();

setDefaultFileMode 设置默认文件权限

$result->setDefaultFileMode(0644);

setDefaultDirectoryMode 设置默认目录权限

$result->setDefaultDirectoryMode(0755);

setExcludedFileModes 设置文件允许的权限。具有这些权限的文件将被跳过

$result->setExcludedFileModes([0400, 0444, 0640]);

setExcludedDirectoryModes 设置目录允许的权限。具有这些权限的目录将被跳过

$result->setExcludedDirectoryModes([0750]);

setExcludedNames 通过自定义模式排除文件。支持 glob 和正则表达式

$result->setExcludedNames(['*.rb', '*.py']);

setNames 通过自定义模式包括文件并排除任何其他文件。支持 glob 和正则表达式

$result->setNames(['*.php']);

setExcludedPaths 排除一系列文件/目录路径

$result->setExcludedPaths(['first/dir', 'other/dir']);

doExcludeFiles 排除所有文件

$result->doExcludeFiles();

doExcludeDirectories 排除所有目录

$result->doExcludeDirectories();

scan 找到所有相关的文件/目录

$result->scan([__DIR__]);

setPaths 手动设置文件/目录的路径。如果你想使用自定义扫描器,这是扫描器的替代方案

$result->setPaths($paths);

dryRun 返回相关文件/目录的数组

$result->dryRun();

fix 将相关文件/目录的权限更改为默认权限

$result->fix();

路线图

查看 开放问题 获取提议的功能完整列表(以及已知问题)。

贡献

如果你有改进的建议,请分支仓库并创建一个 pull request。你还可以通过带有 "enhancement" 标签的问题来提出建议。最后,别忘了给项目加星标!再次感谢!

Docker

如果你使用 docker,可以使用以下命令开始

docker-compose up -d

接下来,访问容器

docker exec -it php-chmod bash

工具

PHP 编码标准修复器

composer run-script cs-fix

PHP 编码标准检查器

composer run-script cs-check

PHP Stan

composer run-script phpstan

单元测试

composer run-script test

许可

它是在 MIT 许可下分发的。有关更多信息,请参阅 LICENSE