makidizajnerica/laravel-expanded

Laravel 辅助工具集合。

v0.3 2023-10-19 15:29 UTC

This package is auto-updated.

Last update: 2024-09-19 17:17:33 UTC


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\AppServiceProviderboot 方法中注册 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\AppServiceProviderboot 方法中注册 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 文件。