orbas / util
用于Laravel的库
0.2.1
2017-08-30 15:04 UTC
Requires (Dev)
- graham-campbell/testbench: ^3.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2024-09-06 08:16:58 UTC
README
Laravel Util 提供了一些有用的方法,例如 enum
和 presenter
安装
要获取最新版本,只需使用 Composer 引入项目
$ composer require orbas/util
并在你的 config/app.php
中注册 Orbas\Util\ServiceProvider::class
服务提供者
枚举
枚举是一个包含一组命名常量的独特类型,称为枚举列表。
你可以更简单地使用它来自定义枚举。
创建枚举类
$ php artisan util:make:enum Gender
这将创建一个类到 app/Enums/
文件夹
定义枚举
namespace App\Enums; use Orbas\Util\Enum\Enumable; class Gender implements Enumable { /** * * @return array */ public function create() { return ['female', 'male']; } }
或者你可以定义键
namespace App\Enums; use Orbas\Util\Enum\Enumable; class Weekday implements Enumable { /** * * @return array */ public function create() { return [ 1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday', 7 => 'Sunday' ]; } }
享受使用它
生成性别集合
app('enum')->create('gender');
从键获取值
app('enum')->value(1, 'weekday'); // this will echo Monday
使用门面
将类别名添加到 config/app.php
的别名数组中
'aliases' => [ // ... 'Enum' => \Orbas\Util\Facades\Enum::class, // ... ],
然后你可以这样使用它
// equal to app('enum')->create('gender');
Enum::create('gender');
Enum::gender();
未来还将发布更多功能。
展示者
或者你可以称之为视图展示者。有时你需要在将数据放入之前执行一些逻辑。
例如
{{ $user->first_name }} {{ $user->last_name }} {{ $user->gender == 0 ? 'female' : 'male' }} {{ Carbon\Carbon::parse($user->birthday->format('d/m/Y') }}
展示者是一种模式,你可以将逻辑远离视图和模型。 (保持模型干净,并执行它应该做的事情。)
创建展示者类
$ php artisan util:make:presenter User
这将创建一个类到 app/Presenters
文件夹
编辑你的展示者逻辑
namespace App\Presenters; use Orbas\Util\Presenter; class User extends Presenter { public function full_name() { return $this->attribute('first_name') . ' ' . $this->last_name; } public function birthday() { return Carbon\Carbon::parse($this->attribute('') } }
将展示者特质添加到你的模型中
namespace App; use Illuminate\Database\Eloquent\Model; use Orbas\Util\Traits\Presenter; class User extends Model { use Presenter; }
用法
$user = App\User::find(1); $user->present()->full_name; // or $user->present('full_name');
与枚举的多语言
展示者提供自动翻译。
将 enums.php
放到 resources/lang/YOUR_LOCALE/enums.php
// resources/lang/zh-TW/enums.php return [ 'gender' => [ // enum name 'female' => '女', // enum key => translation word 'male' => '男' ] ];
展示者会为你翻译
$user = App\User::first(); $user->present('gender'); // or $user->present()->gender; //or given a enum name and locale $user->present()->enum('gender', 'Gender', 'zh-TW');
许可证
Laravel Util 根据 MIT 许可证 (MIT) 许可。