morvren-achronos / useful
Useful 是一个 PHP 非框架库。它是一系列实用类集合。取你需要的,剩下不用管。
Requires
- php: ^5.0 || ^7.0
- psr/log: ^1.1
Requires (Dev)
- phpunit/phpunit: ^8.1
Suggests
- ext-curl: Required for Useful\HttpClient
README
Useful 是一个注重简单性的 PHP 库集合。取你需要的,忽略其余的。
目标
实用
Useful 提供了其他地方难以找到的便利。
它解决了 PHP 语言、常见框架或流行库没有很好解决的常见挑战。
简单性
Useful 可以快速使用,无需大量阅读和培训。
类层次结构扁平。每个类只做一件事。所有类对应用程序开发人员都立即有用。
易于集成
Useful 不要求你以特定方式做事。
它有很少的依赖项,依赖项标记清晰。每个类都独立存在,可以单独使用。
要求
PHP 5 >= 5.4 或 PHP 7;或者 PHP 5 >= 5.0(需要特殊处理,见下文 无命名空间)。
大多数类应该在 PHP 支持的任何地方工作。例外情况已明确标注。
安装
Composer
Useful 支持 Composer。如果你也使用,太好了,使用 Composer 安装 Useful 然后继续。
示例
手动
你可以从 Github 克隆,或者直接复制文件。
从 Github 克隆
git clone https://github.com/morvren-achronos/php-useful.git WHEREVER_YOU_PUT_VENDOR_CODE/useful
你甚至可以粘贴单个类;Useful 类没有相互依赖,所以如果你只需要一个,就可以直接取用并使用。
使用
Composer 自动加载
如果你使用 Composer,则 Useful 代码将自动加载。所有类都在 \Useful
命名空间中。
示例
// Create a Useful Date object $oDate = \Useful\Date::create('1999-12-31');
包含 Useful 的自动加载器
// Load Useful autoloader directly require_once('WHEREVER_YOU_PUT_VENDOR_CODE/useful/src/autoloader.php'); // Create a Useful Date object $oDate = \Useful\Date::create('1999-12-31');
这是一个简单的 PSR-4 自动加载器,用于 \Useful
命名空间。
无命名空间:遗留加载器
Useful 通过其“遗留加载”系统支持回 PHP 5(理论上)5.0。
注意,测试套件需要 PHP 7。作者在 PHP 5.1 上使用了 Useful 的部分功能。效果可能因人而异。
PHP 5.1 兼容的 SPL 自动加载器
// Load Useful legacy autoloader require_once('WHEREVER_YOU_PUT_VENDOR_CODE/useful/src/legacy_autoloader.php'); // Create a Useful Date object $oDate = Useful_Date::create('1999-12-31');
遗留自动加载器使用类名前缀(Useful_Foo
)而不是命名空间(\Useful\Foo
)。
PHP 5.0 加载器
PHP 5.0 没有 spl_autoload_register()
。没关系。遗留加载器可以用来直接加载一个类,而不需要命名空间。
// Load Useful_Legacy_Loader class require_once('WHEREVER_YOU_PUT_VENDOR_CODE/useful/src/Useful_Legacy/Loader.php'); Useful_Legacy_Loader::registerNamespace( '\Useful', 'WHEREVER_YOU_PUT_VENDOR_CODE/useful/src/Useful', 'WRITABLE_TEMP_DIRECTORY_FOR_CODE_CACHING/' ); function __autoload($sClass) { // Try Useful legacy loader, it will return FALSE if not handled. // You could also just call this method directly for each class you want, without an autoloader. if (Useful_Legacy_Loader::loadClass($sClass)) { return; } // ... whatever else you need to autoload } // Create a Useful Date object $oDate = Useful_Date::create('1999-12-31');
测试
使用 PHPUnit。测试覆盖率是 [2019-04] @TODO 对于某些类来说非常不完整。