timwassenburg / laravel-repository-generator
生成Laravel仓库
Requires (Dev)
- laravel/pint: ^1.10
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^8.5
- pestphp/pest: ^2.5
This package is auto-updated.
Last update: 2024-09-08 02:20:44 UTC
README
目录
特性
使用此包,您可以使用 artisan make:repository
命令生成仓库。生成器将生成仓库、仓库接口,并将它们自动(可更改为手动绑定)绑定到服务容器,以便您可以将接口注入到控制器中。
安装
使用composer安装Laravel Repository Generator。
composer require timwassenburg/laravel-repository-generator --dev
发布配置(可选)
php artisan vendor:publish --provider="TimWassenburg\RepositoryGenerator\RepositoryGeneratorServiceProvider" --tag="config"
使用方法
使用时,请按照以下步骤操作。生成仓库,然后将其注入到控制器或服务中。
生成仓库
运行以下命令。
php artisan make:repository UserRepository
此示例将生成以下文件
app\Repositories\Eloquent\UserRepository app\Repositories\UserRepositoryInterface
依赖注入
接下来,我们必须将接口注入到控制器或服务的构造函数中。对于此示例,我们将使用UserController。
<?php namespace App\Http\Controllers; use App\Repositories\UserRepositoryInterface; class UserController extends Controller { private $user; public function __construct(UserRepositoryInterface $userRepository) { $this->user = $userRepository; } // your controller functions }
默认情况下,您将能够使用Eloquent方法,如all()
和find()
。您可以在仓库中扩展这一点。现在您可以在方法中使用您的仓库,如下所示。
public function index() { return $this->user->all(); }
手动绑定
默认情况下,该包将自动为您绑定仓库接口,以便您可以将接口注入到控制器中。如果想要手动绑定,可以将config\repository-generator.php
中的auto_bind_interfaces
选项设置为false
。如果配置文件不存在,请确保首先按照安装章节中描述的方式发布它。
您可以将绑定添加到AppServiceProvider中,或者创建一个新的提供者,使用php artisan make:provider RepositoryServiceProvider
(别忘了在config\app.php
中添加它)并将绑定添加到register()
方法中,以下是一个示例。
<?php namespace App\Providers; use App\Repositories\Eloquent\UserRepository; use App\Repositories\UserRepositoryInterface; use Illuminate\Support\ServiceProvider; /** * Class RepositoryServiceProvider * @package App\Providers */ class RepositoryServiceProvider extends ServiceProvider { /** * Register services. * * @return void */ public function register() { $this->app->bind(UserRepositoryInterface::class, UserRepository::class); } }
测试
使用以下命令运行测试
composer test
更多生成包
寻找更多加快您工作流程的方法?请确保查看这些包。
- Laravel Action Generator
- Laravel Pivot Table Generator
- Laravel Repository Generator
- Laravel Service Generator
- Laravel Trait Generator
上述包是Laravel Artisan Extender的一部分。
贡献
贡献使开源社区成为一个如此令人惊叹的学习、灵感和创造的地方。您所做的任何贡献都备受赞赏。
如果您有改进此项目的建议,请复制仓库并创建一个pull request。您也可以简单地创建一个带有“enhancement”标签的问题。别忘了为项目加星!再次感谢!
- 复制项目
- 创建您的特性分支(
git checkout -b feature/AmazingFeature
) - 提交您的更改(
git commit -m 'Add some AmazingFeature'
) - 将更改推送到分支(
git push origin feature/AmazingFeature
) - 打开Pull Request
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。