2017 © Pedro Peláez
 

library laravel-component

Several starter interfaces and abstract classes for a laravel project

image

michaeltintiuc/laravel-component

Several starter interfaces and abstract classes for a laravel project

  • Monday, October 2, 2017
  • by michaeltintiuc
  • Repository
  • 0 Watchers
  • 1 Stars
  • 24 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 2 Open issues
  • 19 Versions
  • 0 % Grown

The README.md

laravel-component

:bulb: Several starter interfaces and abstract classes for laravel projects, (*1)

Contents

  1. Installation
  2. Usage
  3. Contribution

Installation

Require via composer, (*2)

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
```php
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!, (*3)

The Versions

02/10 2017

dev-master

9999999-dev

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

02/10 2017

dev-styleci

dev-styleci

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

02/10 2017

dev-analysis-q2Njk9

dev-analysis-q2Njk9

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

16/07 2017

v0.1

0.1.0.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

19/02 2017

v5.1.0

5.1.0.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

21/01 2017

v5.0.9

5.0.9.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

21/01 2017

v5.0.8

5.0.8.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

20/12 2016

v5.0.7

5.0.7.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

19/12 2016

dev-php5

dev-php5

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

19/12 2016

v5.0.6

5.0.6.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v5.0.5

5.0.5.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v5.0.4

5.0.4.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v5.0.3

5.0.3.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v5.0.2

5.0.2.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

dev-php7

dev-php7

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v7.0.1

7.0.1.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v5.0.1

5.0.1.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v5

5.0.0.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface

14/12 2016

v7

7.0.0.0

Several starter interfaces and abstract classes for a laravel project

  Sources   Download

MIT

The Requires

 

laravel helper base abstract class interface