makidizajnerica / laravel-expanded
Laravel 辅助工具集合。
v0.3
2023-10-19 15:29 UTC
Requires
- php: >=8.0
- laravel/framework: >=9.0
Requires (Dev)
- orchestra/testbench: ^6.9
- phpunit/phpunit: ^9.5
README
Laravel 辅助工具集合。
安装
composer require makidizajnerica/laravel-expanded
使用
特质
MakiDizajnerica\Expanded\Concerns\Models\Collectionable
轻松定义模型集合,无需编写 newCollection
方法
<?php namespace App\Models; use App\Collections\UserCollection; use Illuminate\Database\Eloquent\Model; use MakiDizajnerica\Expanded\Concerns\Models\Collectionable; class User extends Model { use Collectionable; /** * @var class-string */ protected $collection = UserCollection::class; // ... }
MakiDizajnerica\Expanded\Concerns\Models\Routable
轻松定义模型路由键,无需编写 getRouteKeyName
方法
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use MakiDizajnerica\Expanded\Concerns\Models\Routable; class User extends Model { use Routable; /** * @var string */ protected $routeKeyName = 'uuid'; protected $fillable = [ 'uuid', 'username', 'email', // ... ]; // ... }
MakiDizajnerica\Expanded\Concerns\EnumToArray
枚举辅助工具
<?php namespace App\Enums; use MakiDizajnerica\Expanded\Concerns\EnumToArray; enum UserType: int { use EnumToArray; case user = 1; case moderator = 2; case admin = 3; } // Get the names of the cases: var_dump(UserType::names()); // array(3) { // [0]=> string(4) "user" // [1]=> string(9) "moderator" // [2]=> string(5) "admin" // } // Get the values of the cases: var_dump(UserType::values()); // array(3) { // [0]=> int(1) // [1]=> int(2) // [2]=> int(3) // } // Get array representation of the enum: var_dump(UserType::toArray()); // array(3) { // ["user"]=> int(1) // ["moderator"]=> int(2) // ["admin"]=> int(3) // }
混入
MakiDizajnerica\Expanded\Mixins\ArrMixin
在 App\Providers\AppServiceProvider
的 boot
方法中注册 MakiDizajnerica\Expanded\Mixins\ArrMixin
<?php use Illuminate\Support\Arr; use Illuminate\Support\ServiceProvider; use MakiDizajnerica\Expanded\Mixins\ArrMixin; class AppServiceProvider extends ServiceProvider { // ... /** * Bootstrap any application services. */ public function boot(): void { Arr::mixin(new ArrMixin); } // ... }
现在您可以使用一些方法了
@Todo
MakiDizajnerica\Expanded\Mixins\StrMixin
在 App\Providers\AppServiceProvider
的 boot
方法中注册 MakiDizajnerica\Expanded\Mixins\StrMixin
<?php use Illuminate\Support\Str; use Illuminate\Support\ServiceProvider; use MakiDizajnerica\Expanded\Mixins\StrMixin; class AppServiceProvider extends ServiceProvider { // ... /** * Bootstrap any application services. */ public function boot(): void { Str::mixin(new StrMixin); } // ... }
现在您可以使用一些方法了
username
使用 username
方法将电子邮件转换为用户名
<?php use Illuminate\Support\Str; $username = Str::username('random-user-123@mail.com'); var_dump($username); // string(10) "randomuser123"
作者
Nemanja Marijanovic (n.marijanovic@hotmail.com)
许可证
版权所有 © 2021, Nemanja Marijanovic n.marijanovic@hotmail.com
保留所有权利。
有关完整的版权和许可信息,请查看随源代码一起分发的 LICENSE 文件。