承接 mll-lab/laravel-utils 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mll-lab/laravel-utils

最新稳定版本:v10.9.0

Composer 安装命令:

composer require mll-lab/laravel-utils

包简介

Shared Laravel utilities of MLL

README 文档

README

Validate Code Coverage

Latest Stable Version Total Downloads

Shared Laravel utilities of MLL

Installation

Install through composer

composer require mll-lab/laravel-utils

Usage

See tests.

Autoincrement

Allows the creation of incrementing IDs without actually using autoincrement.

Extend the class Autoincrement with a descriptive name for your ID.

use MLL\LaravelUtils\Database\Autoincrement;

final class MaxFooID extends Autoincrement
{
    public static function name(): string
    {
        return 'max_foo_id';
    }
}

Generate a migration and call the createTable() method in it:

public function up(): void
{
    MaxFooID::createTable();
}

To use this ID in your model, set $incrementing to false and assign the ID to your model in the booted() method:

public $incrementing = false;

protected static function booted(): void
{
    self::creating(function (self $instance): void {
        $instance->id ??= MaxFooID::next();
    });

Conditional Migrations

To run a migration conditionally, implement the MLL\LaravelUtils\Database\ConditionalMigration interface and its ->shouldRun() method in your migration:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Carbon;
use MLL\LaravelUtils\Database\ConditionalMigration

return new class extends Migration implements ConditionalMigration {
    public function up(): void
    {
        // Something that would put intense strain on the database
    }

    public function shouldRun(): bool
    {
        $currentHour = Carbon::now()->hour;

        // Only run between 01:00 and 03:00
        return $currentHour > 1 && $currentHour < 3;
    }
};

Strict Stubs

To continually keep your stubs updated with the latest and greatest from this package, add /stubs to your .gitignore and add the following to your composer.json:

    "scripts": {
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
+           "@php artisan vendor:publish --tag=strict-stubs --force"
        ]
    }

Changelog

See CHANGELOG.md.

Contributing

See CONTRIBUTING.md.

License

This package is licensed using the MIT License.

统计信息

  • 总下载量: 182.75k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-12-05