mathiasreker/php-chmod
Composer 安装命令:
composer require mathiasreker/php-chmod
包简介
php-chmod is a PHP library for easily changing file/directory permissions recursively.
README 文档
README
php-chmod is a PHP library for easily changing file/directory permissions recursively.
✅ Literal octal notation (0o) is supported
Versions & Dependencies
| Version | PHP | Documentation |
|---|---|---|
| ^3.0 | ^8.1 | current |
Requirements
- php-extension
ext-mbstring
Installation
Run:
composer require mathiasreker/php-chmod
Examples
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[]
Fix:
<?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
Documentation
$result = new Scanner();
setDefaultFileMode sets the default file permission:
$result->setDefaultFileMode(0644);
setDefaultDirectoryMode sets the default directory permission:
$result->setDefaultDirectoryMode(0755);
setExcludedFileModes sets the allowed permissions for files. Files with these permissions will be skipped:
$result->setExcludedFileModes([0400, 0444, 0640]);
setExcludedDirectoryModes sets the allowed permissions for directories. Directories with these permissions will be
skipped:
$result->setExcludedDirectoryModes([0750]);
setExcludedNames exclude files by a custom pattern. Glob and RegEx are supported:
$result->setExcludedNames(['*.rb', '*.py']);
setNames includes files by a custom pattern and exclude any other files. Glob and RegEx are supported:
$result->setNames(['*.php']);
setExcludedPaths excludes a list of file/directory paths:
$result->setExcludedPaths(['first/dir', 'other/dir']);
doExcludeFiles excludes all files:
$result->doExcludeFiles();
doExcludeDirectories excludes all directories:
$result->doExcludeDirectories();
scan finds all the concerned files/directories:
$result->scan([__DIR__]);
setPaths sets paths of files/directories manually. This is an alternative to the scanner if you want to use a custom
scanner:
$result->setPaths($paths);
dryRun returns an array of the concerned files/directories:
$result->dryRun();
fix changes the concerned files/directories permissions to the default permission:
$result->fix();
Roadmap
See the open issues for a complete list of proposed features (and known issues).
Contributing
If you have a suggestion to improve this, please fork the repo and create a pull request. You can also open an issue with the tag "enhancement". Finally, don't forget to give the project a star! Thanks again!
Docker
If you are using docker, you can use the following command to get started:
docker-compose up -d
Next, access the container:
docker exec -it php-chmod bash
Tools
PHP Coding Standards Fixer:
composer run-script cs-fix
PHP Coding Standards Checker:
composer run-script cs-check
PHP Stan:
composer run-script phpstan
Unit tests:
composer run-script test
License
It is distributed under the MIT License. See LICENSE for more information.
mathiasreker/php-chmod 适用场景与选型建议
mathiasreker/php-chmod 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 625 次下载、GitHub Stars 达 11, 最近一次更新时间为 2022 年 08 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「file」 「directory」 「permissions」 「chmod」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 mathiasreker/php-chmod 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mathiasreker/php-chmod 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 mathiasreker/php-chmod 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Laravel Multiauth package
The file manager intended for using Laravel with CKEditor / TinyMCE / Colorbox
LDAP user provider bundle for Symfony 6.4
User permissions for MoonShine
Laravel Media Popup to upload/view the files
Simple class for encapsulating file directory object.
统计信息
- 总下载量: 625
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-08-05