michaeltintiuc/laravel-component
Composer 安装命令:
composer require michaeltintiuc/laravel-component
包简介
Several starter interfaces and abstract classes for a laravel project
README 文档
README
💡 Several starter interfaces and abstract classes for laravel projects
Contents
Installation
Require via composer
composer require michaeltintiuc/laravel-component
Usage
Directory structure
app/Components/ - holds all component dirs like Users, Posts, Tags, etc
app/Components/Users - holds the model class (i.e. User) and all environment dirs like Admin, Site, etc
app/Components/Users/{ENV} - holds all classes and routes.php related to the environment specific implementation of a component
app/Components/Users/{ENV}/Requests - holds form validation classes specific to an environment and component
Controllers
namespace Acme\Components\Users\Admin; use Illuminate\Http\Request; use MichaelT\Component\Admin\ComponentController; class UsersController extends ComponentController { public function __construct(Request $request, PostTagsRepo $repo) { parent::__construct($request, $repo); $this->setComponent('user'); $this->setBaseView('admin.users'); $this->setSearchRoute('admin.users.index'); } public function index(Request $request) { if ($request->has('search')) { return $this->search($request->search); } $this->setTitle('All users'); $this->setHeading('Users list'); $users = $this->repo->all(); return $this->view('index') ->with(compact('users')); } ... }
Repositories
Interfaces aka Contracts
namespace Acme\Components\Users\Admin; use MichaelT\Component\Admin\Contracts\RepoContract; use MichaelT\Component\Admin\Contracts\Searchable; interface UsersRepoContract extends RepoContract, Searchable { }
Repository
namespace Acme\Components\Users\Admin; use Acme\Components\Users\User; use MichaelT\Component\Admin\ComponentRepo; use Acme\Components\Users\Admin\UsersRepoContract; class UsersRepo extends ComponentRepo implements UsersRepoContract { public function __construct(User $model) { parent::__construct($model); $this->setComponent('user'); } public function all() { return $this->model->get(); } public function paginate() { return $this->model ->paginate($this->getPerPage()); } public function find($id) { try { return $this->model->findOrFail($id); } catch (\Exception $e) { throw new \FindAdminException($this->error('find')); } } ... }
Routes
Component
Route::group(['namespace' => 'Acme\Components\Users\Admin'], function () { Route::resource('users', 'UsersController'); });
Loading routes
Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () { Route::group(['middleware' => ['auth']], function () { require_once app_path().'/Components/Users/Admin/routes.php'; }); });
Contribution
Contributions, bug-reports, feature and pull requests are always welcome!
统计信息
- 总下载量: 35
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-12-14