laragear / meta
Laravel 包的 Laravel 包助手
Requires
- php: ^8.1
Requires (Dev)
- laragear/meta-testing: 2.*
- laravel/breeze: 1.*|2.*
- orchestra/testbench: 8.*|9.*
README
为 Laravel 包提供 Laravel 包助手。
public function boot() { $this->withPublishableMigrations(__DIR__.'/../migrations'); $this->withSchedule(fn($schedule) => $schedule->command('inspire')->hourly()); }
成为赞助商
您的支持使我能够保持此包免费、更新和可维护。或者,您也可以 传播这个词!
要求
- Laravel 10 或更高版本。
安装
使用 Composer 将此包引入到您的项目中,包括仅用于开发的测试器
composer require laragear/meta composer require --dev laragear/meta-testing
探索者
Discover
类是一个构建器,允许在给定路径下发现类。它包含各种流畅的方法来过滤要发现的类,如方法、属性、接口和特性等。
它已移至 自己的存储库。您可以与此包一起安装它,但不是必须的。
composer require laragear/discover
中间件声明
当使用 withMiddleware()
时,您将收到一个 MiddlewareDeclaration
对象,该对象具有方便的方法来全局或组内注册中间件,将其设置为全局优先级堆栈中的第一个/最后一个,并为其注册别名。
public function boot() { $declaration = $this->withMiddleware(OnlyAdults::class); // Make it a shared instance. $declaration->shared(); // Set an alias $declaration->as('adults'); // Puts it inside a middleware group. $declaration->inGroup('web'); // Sets the middleware in the global stack. $declaration->globally(); // Makes the middleware run first or last in the priority stack. $declaration->first(); $declaration->last(); }
构建器扩展器
ExtendsBuilder
特性允许 全局作用域 通过新方法扩展 Eloquent Builder 的实例。简单地开始您的构建器方法 extend
,无论可见性范围如何,方法是否为静态。
use Illuminate\Database\Eloquent\Scope; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Laragear\Meta\Database\Eloquent\ExtendsBuilder; class Cars implements Scope { use ExtendsBuilder; public function apply(Builder $builder, Model $model) { // ... } private function extendWhereAvailable($builder) { return $builder->where('available_at', '>', now()); } protected static function extendWhereColor($builder, string $color) { return $builder->where('base_color', $color); } }
提示
如果您需要查询的模型,您始终可以使用 getModel()
在 Eloquent Builder 实例上。
命令助手
此元包包括 WithEnvironmentFile
助手特性,用于修改环境文件键和值。
use Illuminate\Console\Command; use Laragear\Meta\Console\Commands\WithEnvironmentFile; class AddServiceKey extends Command { use WithEnvironmentFile; public function handle() { // ... $this->putEnvKey('AWESOME_SERVICE', $this->argument('service_key')) } }
升级
测试
Laragear Meta 的先前版本包含包的测试助手。这些已被迁移到 Laragear MetaTesting。您可以使用这些助手在您的项目中,通过 Composer 安装作为开发依赖项
composer require --dev laragear/meta-testing
PublishesMigrations
特性
此特性已被删除。
此 publishesMigrations
方法与 Laravel 11.x 的签名冲突。如果您计划将其导入多版本 Laravel 包,请考虑使用您自己的发布逻辑。
您应该使用 withPublishableMigrations()
方法与包含您的迁移的目录。此方法如果可用,则使用 publishesMigrations()
,否则将回退到在每个路径中的单个迁移文件上发布。
public function boot() { // ... $this->withPublishableMigrations(__DIR__.'/../stubs/migrations'); }
Laravel Octane 兼容性
- 没有使用过时的应用程序实例的单例。
- 没有使用过时的配置实例的单例。
- 没有使用过时的请求实例的单例。
ExtendsBuilder
仅在每个作用域中初始化其静态属性一次。
使用此包与 Laravel Octane 应该没有问题。
安全
如果您发现任何安全相关的问题,请通过电子邮件 darkghosthunter@gmail.com 联系,而不是使用问题跟踪器。
许可证
本特定软件包版本在发布时遵循MIT 许可协议。
Laravel是Taylor Otwell的商标。版权所有 © 2011-2024 Laravel LLC。