定制 dmdboi/laravel-autoscopes 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

dmdboi/laravel-autoscopes

最新稳定版本:1.0.1

Composer 安装命令:

composer require --dev dmdboi/laravel-autoscopes

包简介

Automatically generate scope traits for Laravel Models based on foreign key relationships.

README 文档

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Automatically generate type-safe scope traits for Laravel models based on foreign key relationships.

Installation

composer require dmdboi/laravel-autoscopes --dev

Quick Start

Generate scope traits for your models:

# Creates HasUserScopes trait and applies to models with user_id column
php artisan scopes:generate User

# Use the generated scopes
Post::forUser(1)->get();
Post::forUserIn([1, 2, 3])->get();
Post::exceptUser(1)->get();
Comment::forUser(1)->forPost(5)->get();

How It Works

Given models with foreign keys:

class Post extends Model {
    protected $fillable = ['user_id', 'title', 'content'];
}

class Comment extends Model {
    protected $fillable = ['user_id', 'post_id', 'content'];
}

Running php artisan scopes:generate User:

  1. Creates HasUserScopes trait in app/Models/Traits/
  2. Auto-detects Post and Comment have user_id column (via database schema or $fillable)
  3. Applies trait to both models automatically

Generated trait includes:

<?php

declare(strict_types=1);

namespace App\Models\Traits;

use Illuminate\Database\Eloquent\Builder;

trait HasUserScopes
{
    /**
     * @param Builder<\Illuminate\Database\Eloquent\Model> $query
     * @param int|string $userId
     * @return Builder<\Illuminate\Database\Eloquent\Model>
     */
    public function scopeForUser(Builder $query, int|string $userId): Builder
    {
        return $query->where('user_id', $userId);
    }
    
    // scopeForUserIn() and scopeExceptUser() also included
}

Commands

scopes:generate {model} - Generate a scope trait and auto-apply to related models

php artisan scopes:generate User
php artisan scopes:generate Post

scopes:add {trait} - Apply existing trait to models (validates model exists)

php artisan scopes:add HasUserScopes
php artisan scopes:add HasPostScopes

Features

  • Type Safe - strict_types=1, generic Builder<Model> type hints
  • Auto-Detection - Finds models with matching foreign keys
  • Format Preserving - PHP-Parser preserves your code formatting
  • Atomic - File locking prevents concurrent modification issues
  • Secure - Path traversal protection built-in

Testing

# Run all tests
composer test

# Static analysis
composer analyse

# Code style
composer format

Changelog

See CHANGELOG for recent changes.

Credits

License

The MIT License (MIT). See License File for details.

统计信息

  • 总下载量: 37
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固