phossa2 / shared
其他 phossa2 库的共享库
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: 2.*
README
phossa2/shared 是其他 phossa2 库的共享库。
它需要 PHP 5.4,支持 PHP 7.0+ 和 HHVM。它符合 PSR-1、PSR-2、PSR-4。
安装
通过 composer
工具安装。
composer require "phossa2/shared=2.*"
或者将以下行添加到您的 composer.json
{ "require": { "phossa2/shared": "2.*" } }
功能
-
异常
所有 phossa2 异常实现
Phossa2\Shared\Exception\ExceptionInterface
。要实现 phossa2 异常接口,
<?php namespace Phossa2\Cache\Exception; use Phossa2\Shared\Exception\ExceptionInterface; class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface { }
-
消息
Phossa2\Shared\Message\Message
类是所有 phossa2 包中所有消息类的基类。-
定义与包相关的
Message
类消息类用于将消息代码转换为可读消息,并且 必须 定义其自己的属性
$messages
。<?php namespace Phossa2\Cache\Message; use Phossa2\Shared\Message\Message; class CacheMessage extends Message { // use current year_month_date_hour_minute const CACHE_MESSAGE = 1512220901; // driver failed const CACHE_DRIVER_FAIL = 1512220902; protected static $messages = [ self::CACHE_MESSAGE => 'cache %s', self::CACHE_DRIVER_FAILT => 'cache driver %s failed', ]; }
-
使用消息类
通常只使用
Message::get()
和Message::CONST_VALUE
。use Phossa2\Cache\Message\CaseMessage; ... // throw exception throw new \RuntimeException( CacheMessage::get(CacheMessage::CACHE_DRIVER_FAIL, get_class($driver)), CacheMessage::CACHE_DRIVER_FAIL );
-
消息加载器
用于加载不同的代码到消息映射,如语言文件。
namespace Phossa2\Cache; use Phossa2\Cache\Message\CaseMessage; use Phossa2\Shared\Message\Loader\LanguageLoader; // set language to 'zh_CN' $langLoader = new LanguageLoader('zh_CN'); // will load `CacheMessage.zh_CN.php` in the same dir as `CacheMessage.php` CacheMessage::setLoader($langLoader); // print message in chinese echo CacheMessage::get( CacheMessage::CACHE_MESSAGE, get_class($object) );
-
消息格式化器
用于格式化不同设备上的消息,如 HTML 页面。格式化器在
Phossa2\Shared\Message\Message
的所有兄弟之间共享namespace Phossa2\Cache; use Phossa2\Cache\Message\CaseMessage; use Phossa2\Shared\Message\Formatter\HtmlFormatter; // format message as HTML $formatter = new HtmlFormatter(); CacheMessage::setFormatter($formatter); // print as HTML echo CacheMessage::get( CacheMessage::CACHE_MESSAGE, get_class($object) );
-
-
实用工具
这里有一些有用的实用工具。
-
ClassNameTrait
PHP 5.4 缺少
::class
功能。ClassNameTrait
提供了三个静态方法::getClassName()
、::getShortName()
、::getNameSpace()
-
StaticAbstract
用于由其他 STATIC 类扩展。
<?php namespace Phossa2\MyPackage; class MyStaticClass extends \Phossa2\Shared\Base\StaticAbstract { ... }
-
-
*Trait
在
Aware/
目录中的一些有用 traitTagAwareTrait
添加标签支持
-
接口
一些有用的接口在
Contract/
目录中。ArrayableInterface
-
支持 PHP 5.4+、PHP 7.0+、HHVM
-
PHP7 为返回类型声明和参数类型声明做好了准备。
-
符合 PSR-1、PSR-2、PSR-4。
-
解耦的包可以在没有框架的情况下单独使用。
变更日志
请参阅 CHANGELOG 获取更多信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTE 获取更多信息。
依赖
- PHP >= 5.4.0