luthfi / simple-crud-generator
一个为 Laravel 5.5 (及以后版本) 和 Bootstrap 4 设计的简单 CRUD 生成器。
Requires
- php: ^8.1
- illuminate/support: ^10.0
- laravel/browser-kit-testing: ^7.0
Requires (Dev)
- orchestra/testbench: ^8.0
- dev-master
- 4.1.0
- 4.0.0
- 3.0.0
- 2.4.1
- 2.4.0
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.0
- 1.x-dev
- 1.6.2
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.x-dev
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.x-dev
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.7
- 1.1.6
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-laravel_11_support
- dev-laravel_10_support
This package is auto-updated.
Last update: 2024-09-04 05:34:52 UTC
README
在 Laravel 项目中需要更快的 TDD?这是一个包含自动化测试套件的简单 CRUD 生成器。
文档
有关安装说明和用法,请参阅 官方文档。
关于此包
此包包含 artisan make:crud
命令,用于在我们的 Laravel 5.5 (及以后) 应用程序中创建简单的 CRUD 功能和测试类。此包相对简单,旨在为我们的 laravel 应用程序 提升测试驱动开发方法。
在本地环境中安装此包后,我们可以使用(例如)php artisan make:crud Vehicle
命令生成一些文件。
App\Models\Vehicle.php
eloquent 模型xxx_create_vehicles_table.php
迁移文件VehicleController.php
index.blade.php
和forms.blade.php
视图文件在resources/views/vehicles
目录下resources/lang/vehicle.php
lang 文件VehicleFactory.php
模型工厂文件VehiclePolicy.php
模型策略文件在app/Policies
目录下ManageVehiclesTest.php
功能测试类在tests/Feature
目录下VehicleTest.php
单元测试类在tests/Unit/Models
目录下VehiclePolicyTest.php
单元测试类在tests/Unit/Policies
目录下
它将更新一些文件
- 更新
routes/web.php
以添加vehicles
资源路由 - 更新
app/providers/AuthServiceProvider.php
以在$policies
属性中添加 Vehicle 模型策略类
如果不存在,它还将创建以下文件
- 如果不存在,则创建
resources/lang/app.php
lang 文件 - 如果不存在,则创建
tests/BrowserKitTest.php
基础功能测试用例类
主要目的
此包的主要目的是为了 加快测试驱动开发,它生成带有测试类的完整模型 CRUD 框架,这些测试类将使用 Laravel Browserkit Testing 包和 PHPUnit。
如何安装
对于 Laravel 10x
# Get the package
$ composer require luthfi/simple-crud-generator:^4.0 --dev
对于 Laravel 9.x
# Get the package
$ composer require luthfi/simple-crud-generator:^3.0 --dev
对于 Laravel 8.x
# Get the package
$ composer require luthfi/simple-crud-generator:^2.0 --dev
对于 Laravel 5.6 到 7.x
# Get the package
$ composer require luthfi/simple-crud-generator:^1.0 --dev
对于 Laravel 5.5
要在 Laravel 5.5 上使用此包,我们需要在 composer.json
文件的 require-dev
中添加包(带有 browserkit),如下所示
# Install required package for laravel/browser-kit-testing $ composer require symfony/css-selector:^3.0 # Get the package $ composer require luthfi/simple-crud-generator 1.2.* --dev
该包将被 自动发现。
如何使用
只需在终端中键入 $ php artisan make:crud ModelName
命令,它将创建给定 模型名称 的简单 Laravel CRUD 文件,并附带测试。
例如,我们想为 'App\Models\Vehicle' 模型创建 CRUD。
$ php artisan make:crud-simple Vehicle
Vehicle resource route generated on routes/web.php.
Vehicle model generated.
Vehicle table migration generated.
VehicleController generated.
Vehicle index view file generated.
Vehicle form view file generated.
lang/app.php generated.
vehicle lang files generated.
Vehicle model factory generated.
Vehicle model policy generated.
AuthServiceProvider class has been updated.
BrowserKitTest generated.
ManageVehiclesTest generated.
VehicleTest (model) generated.
VehiclePolicyTest (model policy) generated.
CRUD files generated successfully!
确保我们在 .env
文件中设置了 数据库凭证,然后
$ php artisan migrate $ php artisan serve
然后访问我们的应用程序 URL: https://:8000/vehicles
。
Laravel 8.x 新安装时的使用
在此示例中,我们使用 laravel installer 包安装新的 Laravel 项目。
# This is example commands for Ubuntu users. $ laravel new project-directory $ cd project-directory $ composer require laravel/ui $ php artisan ui bootstrap --auth $ npm install && npm run dev # Might need to run twice, minimum requirement: NodeJS v12.x $ vim .env # Edit your .env file to update database configuration # Install the package $ composer require luthfi/simple-crud-generator:^2.0 # I really suggest "git commit" your project right before you run the make:crud command $ php artisan make:crud Vehicle # Model name in singular $ php artisan migrate $ php artisan serve # Visit your route http://127.0.0.1:8000 # Register as a new user # Visit your route http://127.0.0.1:8000/vehicles # Run the unit tests $ vim phpunit.xml # Remove comments on the DB_CONNECTION and DB_DATABASE lines $ vendor/bin/phpunit
可用命令
# Create Full CRUD feature with tests $ php artisan make:crud ModelName # Create Full CRUD feature with tests and Bootstrap 3 views $ php artisan make:crud ModelName --bs3 # Create Simple CRUD feature with tests $ php artisan make:crud-simple ModelName # Create Simple CRUD feature with tests and Bootstrap 3 views $ php artisan make:crud-simple ModelName --bs3 # Create API CRUD feature with tests $ php artisan make:crud-api ModelName
模型属性/列
模型和表将仅包含2个预定义的属性或列:标题和描述,每个生成的模型和数据库表都包含这些。您可以继续在表的其它列上工作。
Bootstrap 4 视图
生成的视图文件默认使用Bootstrap 4(适用于Laravel 5.6及以后版本)。
Bootstrap 3 视图
我们也可以使用--bs3
命令选项生成使用Bootstrap 3的视图,例如Laravel版本5.5。
对于API
如果我们想要生成具有功能测试的API控制器,我们使用以下命令
$ php artisan make:crud-api Vehicle
默认情况下,我们使用基于Token的认证,因此我们需要更新我们的用户模型。
- 在
users_table_migration
上添加api_token
列。 - 在
User模型
上添加api_token
作为fillable
属性。 - 在
UserFactory
上添加api_token
字段。
API 使用
生成的API是一个REST API,使用GET和POST动词,URI为/api/modelname
。
使用Guzzle调用生成的API的示例代码
// Read data a specific Vehicle record...
$uri = 'http://your-domain.com/api/vehicles/'.$vehicleID;
$headers = ['Authorization' => 'Bearer '.$apiToken];
$client = new \GuzzleHttp\Client();
$res = $client->request('GET', $uri, ['headers' => $headers]);
// Create a new Vehicle record...
$uri = 'http://your-domain.com/api/vehicles';
$headers = ['Authorization' => 'Bearer '.$apiToken];
$payload = json_encode([
'title' => 'Vehicle Name 1',
'description' => 'Vehicle Description 1',
]);
$client = new \GuzzleHttp\Client();
$res = $client->request('POST', $uri, ['body' => $payload, 'headers' => $headers]);
生成的功能测试将给出如何适应其他调用类型的示例。
配置文件
您可以通过发布配置文件来自定义配置
$ php artisan vendor:publish --provider="Luthfi\CrudGenerator\ServiceProvider" --tag=config
这将生成config/simple-crud.php
文件。
默认情况下,此包有一些配置
<?php return [ // The master view layout that generated views will extends 'default_layout_view' => 'layouts.app', // The base test case class path for generated testing classes 'base_test_path' => 'tests/BrowserKitTest.php', // The base test class full name 'base_test_class' => 'Tests\BrowserKitTest', ];
发布占位符文件
占位符文件是我们用于为每个模型类和文件生成代码的模板。我们可以通过将它们发布到我们的项目目录中来按需自定义占位符文件。
$ php artisan vendor:publish --provider="Luthfi\CrudGenerator\ServiceProvider" --tag=stubs
这将生成位于stubs/simple-crud
目录上的占位符文件。现在我们可以根据项目需求更改一些占位符文件。
注意
- 包将创建
Model
类文件,如果Model已经存在
,则命令将停止。 - 您需要一个
resources/views/layouts/app.blade.php
视图文件,只需使用php artisan make:auth
命令创建一个即可。您可以通过config/simple-crud.php
文件更改此配置。
截图
访问新资源路由中的应用程序:http://127.0.0.1:8000/vehicles
生成的测试套件
接下来,让我们尝试生成的测试套件。要使用生成的测试类,我们可以使用内存数据库SQLite
设置数据库环境。打开phpunit.xml
。在env
下添加两行。
<phpunit> <!-- ..... --> <php> <!-- ..... --> <server name="DB_CONNECTION" value="sqlite"/> <server name="DB_DATABASE" value=":memory:"/> </php> </phpunit>
然后运行PHPUnit
$ vendor/bin/phpunit
所有测试都应通过。
问题/建议
如果您发现任何问题,或想要提出一些想法来帮助改进此包,请在此GitHub仓库中创建一个问题。
许可证
此包是开源软件,根据MIT许可证授权。