veseluy-rodjer / laravel-repository-generator
生成 Laravel 仓库
Requires
- php: ^8.0
- symfony/console: ^5.0
This package is auto-updated.
Last update: 2024-09-14 02:07:52 UTC
README
Laravel 仓库生成器
快速为您的项目生成仓库!
目录
特性
使用此包,您可以通过 `artisan make:repository` 命令生成仓库。生成器将生成仓库、仓库接口,并将它们自动(可以更改为手动绑定)绑定到服务容器,以便您可以将接口注入到控制器中。
安装
使用 composer 安装 Laravel 仓库生成器。
composer require timwassenburg/laravel-repository-generator
发布配置(可选)
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); } }
更多生成器包
寻找更多加快您工作流程的方法?请确保查看这些包。
贡献
贡献使开源社区成为一个如此美妙的学习、灵感和创造的地方。您所做的任何贡献都 非常受赞赏。
如果您有改进此项目的建议,请 fork 存储库并创建一个 pull request。您也可以简单地打开一个带有“enhancement”标签的问题。别忘了给项目加星!再次感谢!
- fork 项目
- 创建您的功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 打开 pull request
许可协议
MIT 许可协议(MIT)。请参阅 许可文件 以获取更多信息。