depotwarehouse / toolbox
一套PHP工具
Requires
- php: >=5.6.0
- illuminate/database: ^5.3
- illuminate/support: ^5.3
- illuminate/validation: ^5.3
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ^5.4
README
这是一个标准库,它抽象了跨所有项目所需执行的一些常见工作。
数据库管理
有几个类使得在项目中使用数据库更容易。这个库是为与Laravel一起使用而设计的,因为它们公开了Eloquent模型,然而Laravel不是必需的。仓库模式允许进行更充分的测试,并且控制器更容易理解。在你的项目中,只需创建扩展自ActiveRepositoryAbstract
的仓库。对于类型提示,你可以使用接口ActiveRepository
。
活动仓库需要Validator
类来验证处理的数据 - 这个类通过构造函数传入。你应该创建自己的实现Validator
接口的验证器,或者可以将NullValidator作为类型提示使用,不对模型执行任何验证。
class MyActiveRepository extends ActiveRepositoryAbstract { public function __construct(\Illuminate\Database\Eloquent\Model $model, \Depotwarehouse\Toolbox\Validation\NullValidator $validator) { $this->model = $model; $this->validator = $validator; } }
验证器实现简单。它们是为考虑Laravel验证器而设计的。它们抛出的异常,ValidationException
,可以传递一个失败的Laravel验证器来构建实例。
要实现验证器,只需创建一个实现Validator
接口的类。如果验证通过,两个方法应该什么都不做;如果发生错误,应抛出ValidationException
。
字符串
通常项目有与字符串相关的需求,这些需求不容易通过PHP标准库来满足。
Strings\generateRandomString($length = 40)
这会生成一个指定长度的随机(伪随机,不要用于加密或安全目的)字符串。这个方便的使用是生成数据库表的非整数键。
Strings\starts_with($haystack, $needle)
Strings\ends_with($haystack, $needle)
Laravel集成
错误部分
此项目附带了一个错误部分,它根据一致的格式在应用页面的顶部显示错误、警告和成功消息。要在Laravel应用程序中安装错误部分处理器,将以下内容添加到config/app.php
文件中的providers数组中。
Depotwarehouse\Toolbox\FrameworkIntegration\Laravel\ErrorPartialServiceProvider::class
然后,你需要使用以下命令发布视图文件:
php artisan vendor:publish
现在在你的布局页面上,你想显示错误的地方(可能是在顶部),只需添加以下内容:
@include('vendor.toolbox.errors.errorPartial')
现在错误、警告和成功消息将一致地渲染!
测试
phpunit