saritasa / php-common
此包已被 弃用 并不再维护。未建议替代包。
Saritasa 类,可在任何应用程序中通用使用
1.2.2
2022-10-10 11:52 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^6.0
- squizlabs/php_codesniffer: ^3.0
README
通用 Saritasa 类和助手,可在任何应用程序中通用使用。此包不应依赖于任何框架或库。
用法
安装 saritasa/php-common
包
$ composer require saritasa/php-common
可用类
Enum
是 SplEnum 类的替代品。设计用于存储重复使用的常量集合。
示例:
class Gender extends Saritasa\Enum { const MALE = 'Male'; const FEMALE = 'Female'; }
代码中的某处
$allGenders = Gender::getConstants(); $gender = new Gender($stringValue); // Will throw UnexpectedValueException on unknown value; function getGenderDependentValue(Gender $gender) { ... }
Dto
一个简单的 DTO,可以将关联数组转换为强类型类并返回
/** * @property-read string $name Person full name * @property-read string $address Street address * @property-read string $city City * @property-read string $state State * @property-read string $zip Zip Code */ class Address extends Dto { protected $name; protected $address; protected $city; protected $state; protected $zip; } ... $address = new Address($request->all()) // Read only Address fields from HTTP Request $address->toArray() // Convert to assotiative array $address->toJson() // Serialize to JSON format
RegExp
preg_match 的可重用包装器
示例:
$isEmail = new RegExp('/\w+@\w+\.\w+/'); $result = $isEmail('test@it');
异常定义
ConfigurationException
如果您发现配置错误,请抛出此异常。
示例:
$payPalKey = config('services.paypal_key');
if (!$payPalKey) {
throw new ConfigurationException("PayPal key is not configured");
}
PagingException
如果您实现分页并遇到不可恢复的问题,请抛出此异常。
PaymentException
如果您实现支付服务或围绕支付服务的包装器并遇到不可恢复的问题,请抛出此异常。
贡献
要求
此包必须
- 不依赖于任何框架或库
- 不依赖于其他 Saritasa 包
- 不注册任何提供者
- 创建分支,检出它
- 本地开发如常。 代码必须遵循 PSR-1,PSR-2 - 运行 PHP_CodeSniffer 以确保代码遵循风格指南
- 通过单元测试添加功能覆盖 并运行 PHPUnit 以确保所有测试通过
- 更新 README.md 以描述新功能或更改功能
- 将更改描述添加到 CHANGES.md 文件。使用 语义版本 规范来确定下一个版本号。
- 准备好后,创建拉取请求
创建快捷方式
如果您已安装 GNU Make,则可以使用以下快捷方式
make cs
(代替php vendor/bin/phpcs
) - 使用 PHP_CodeSniffer 运行静态代码分析以检查代码风格make csfix
(代替php vendor/bin/phpcbf
) - 自动修复代码风格违规(例如,PSR-2 代码格式违规),尽可能做到make test
(代替php vendor/bin/phpunit
) - 使用 PHPUnit 运行测试make install
- 代替composer install
make all
或不带参数的make
- 依次调用上述 install、cs、test 任务 - 项目将构建,使用 linter 检查,并通过一个单一命令进行测试