kilahm/hack-class-scanner
最新稳定版本:v1.3.2
Composer 安装命令:
composer require kilahm/hack-class-scanner
包简介
Recursively scan a directory for hack classes and/or interfaces
README 文档
README
A class that recursively scans a directory for hack classes.
Installation
Add the following line to your composer.json file in the require section.
“kilahm/hack-class-scanner”: “dev-master”
Then run composer update.
Use
To use the class, simply instantiate it with a set of base directories to scan and a set of directories to ignore.
use kilahm\Scanner\ClassScanner; $scanner = new ClassScanner( Set{‘directory/to/scan’, ‘other/directory’}, Set{‘other/directory/to/ignore’} ); $classMap = $scanner->mapClassToFile(); $classAndInterfaceMap = $scanner->mapClassOrInterfaceToFile();
The $classMap variable will then hold a Map<string,string> object that maps class names (with full namespace) to the files in which the class is defined.
The $classAndInterfaceMap will be the same as $classMap except it will include interfaces as well as classes.
Filters
You can filter the result files based on the name of the class or the name of the file. A filter must be a closure with a signature of function(string) : bool.
The input for a class filter is the name of the class including the namespace. The input for a file filter is the name of the file including the full path (via realpath).
If all registered filter functions return true for a particular file or class name, the file will be scanned for a class and the class name will appear in the output, respectively.
$includes = Set{...}; $excludes = Set{...}; $scanner = new ClassScanner($includes, $excludes); $classFilter = $className ==> preg_match(‘/pattern/’, $className); $fileFilter = $fileName ==> preg_match(‘/pattern/’, $fileName); $scanner->addClassNameFilter($classFilter); $scanner->addFileNameFilter($fileFilter); $classMap = $scanner->mapClassToFile();
Assumptions
This class assumes you are following the practice of one class per file. The scanner will stop searching once it has found the first class name in a file.
Thanks
The file parsing algorithm was heavily influenced by the one used in HackPack/HackUnit.
kilahm/hack-class-scanner 适用场景与选型建议
kilahm/hack-class-scanner 是一款 基于 Hack 开发的 Composer 扩展包,目前已累计 118 次下载、GitHub Stars 达 1, 最近一次更新时间为 2014 年 11 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「autoload」 「hack」 「scan」 「hhvm」 「ClassScanner」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 kilahm/hack-class-scanner 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 kilahm/hack-class-scanner 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 kilahm/hack-class-scanner 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Environment processor and contexts autoloader
AMWSCAN (Antimalware Scanner) is a php antimalware/antivirus scanner console script written in php for scan your project. This can work on php projects and a lot of others platform.
Hack Logging Package
Dependency Injection Container For HHVM/Hack
Middleware Dispatcher For Hack
Allows installation of Laravel where the PHP Mcrypt extension is not available. Provides encryption using OpenSSL, or by disabling encryption entierly.
统计信息
- 总下载量: 118
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 35
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-11-19