thejawker / laravel-route-module-macro
暴露模块概念以强制执行 CRUD 和 Restful 路由和命名约定。
0.1.3
2019-09-11 21:33 UTC
Requires
- php: ^7.0
- illuminate/pagination: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0
- illuminate/support: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0
- illuminate/validation: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0
- illuminate/view: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0
Requires (Dev)
- mockery/mockery: ^0.9.5
- orchestra/database: ~3.5.0
- orchestra/testbench: ~3.5.0
- phpunit/phpunit: ^6.0|^7.0
This package is auto-updated.
Last update: 2024-09-26 05:26:49 UTC
README
此包适用于 Laravel 5.5。它深受伟大的 Freek van der Herten 以及他们的 Blender 包 的启发,其中有一个用于模块的宏。这真的很符合 CRUD/Restful 路由方法。
安装
从 Composer 安装包
composer require thejawker/laravel-route-module-macro
从 Laravel 5.5 开始,它将神奇地注册包。
使用
您可以在任何路由文件中添加 Route::module('name', ['only'](可选), ['options](可选))
。第二个参数允许您 only
使用特定的操作,第三个是通用选项。有关这些信息,请参阅 Laravel 文档。
示例
完整资源
routes/api.php
Route::module('posts');
$ php artisan route:list +-----------+-----------------------------------------+---------------+---------------------------------------------------------------------------+ | Method | URI | Name | Action | +-----------+-----------------------------------------+---------------+---------------------------------------------------------------------------+ | POST | api/posts | posts.store | App\Http\Controllers\PostsController@store | | GET|HEAD | api/posts | posts.index | App\Http\Controllers\PostsController@index | | GET|HEAD | api/posts/create | posts.create | App\Http\Controllers\PostsController@create | | DELETE | api/posts/{post} | posts.destroy | App\Http\Controllers\PostsController@destroy | | PUT|PATCH | api/posts/{post} | posts.update | App\Http\Controllers\PostsController@update | | GET|HEAD | api/posts/{post} | posts.show | App\Http\Controllers\PostsController@show | | GET|HEAD | api/posts/{post}/edit | posts.edit | App\Http\Controllers\PostsController@edit | +-----------+-----------------------------------------+---------------+---------------------------------------------------------------------------+
仅资源
routes/api.php
Route::module('posts', ['store']);
$ php artisan route:list +-----------+-----------------------------------------+---------------+----------------------------------------------------------------------------+ | Method | URI | Name | Action | +-----------+-----------------------------------------+---------------+----------------------------------------------------------------------------+ | POST | api/posts | posts.store | App\Http\Controllers\PostsController@store | +-----------+-----------------------------------------+---------------+----------------------------------------------------------------------------+
嵌套资源
这将强制您编写有意义的控制器。嵌套 users.posts
将要求您创建一个具有所需操作的 UserPostsController。routes/api.php
Route::module('users.posts');
$ php artisan route:list +-----------+-----------------------------------------+---------------------+----------------------------------------------------------------------------+ | Method | URI | Name | Action | +-----------+-----------------------------------------+---------------------+----------------------------------------------------------------------------+ | POST | api/users/{user}/posts | users.posts.store | App\Http\Controllers\UserPostsController@store | | GET|HEAD | api/users/{user}/posts | users.posts.index | App\Http\Controllers\UserPostsController@index | | GET|HEAD | api/users/{user}/posts/create | users.posts.create | App\Http\Controllers\UserPostsController@create | | DELETE | api/users/{user}/posts/{post} | users.posts.destroy | App\Http\Controllers\UserPostsController@destroy | | PUT|PATCH | api/users/{user}/posts/{post} | users.posts.update | App\Http\Controllers\UserPostsController@update | | GET|HEAD | api/users/{user}/posts/{post} | users.posts.show | App\Http\Controllers\UserPostsController@show | | GET|HEAD | api/users/{user}/posts/{post}/edit | users.posts.edit | App\Http\Controllers\UserPostsController@edit | +-----------+-----------------------------------------+---------------------+----------------------------------------------------------------------------+
测试
此包绝对需要一些深入的测试。
composer test
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。