PHPackages                             milkmeowo/starter-framework - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. milkmeowo/starter-framework

ActiveFramework

milkmeowo/starter-framework
===========================

The Laravel / Lumen Starter Framework.

v1.0.4(9y ago)3752[1 PRs](https://github.com/milkmeowo/starter-framework/pulls)MITPHPPHP &gt;=5.6.4

Since Jan 12Pushed 3y ago3 watchersCompare

[ Source](https://github.com/milkmeowo/starter-framework)[ Packagist](https://packagist.org/packages/milkmeowo/starter-framework)[ RSS](/packages/milkmeowo-starter-framework/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (12)Versions (7)Used By (0)

starter-framework
=================

[](#starter-framework)

[![Latest Stable Version](https://camo.githubusercontent.com/687c125789cfd04d05a700a28d468ce7024fe6f927a4a54ec7f07ca278db117a/68747470733a2f2f706f7365722e707567782e6f72672f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f762f737461626c65)](https://packagist.org/packages/milkmeowo/starter-framework)[![Latest Unstable Version](https://camo.githubusercontent.com/5d77bd9f7d01e3325f5813540c7dad3a553a3edc786f854c95220ad6d38165ad/68747470733a2f2f706f7365722e707567782e6f72672f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f762f756e737461626c65)](https://packagist.org/packages/milkmeowo/starter-framework)[![Total Downloads](https://camo.githubusercontent.com/8d1be4030d6eb638273d6cd35bd08060faaae6427a44e384270a3499cc2b9fae/68747470733a2f2f706f7365722e707567782e6f72672f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f646f776e6c6f616473)](https://packagist.org/packages/milkmeowo/starter-framework)[![StyleCI](https://camo.githubusercontent.com/8e4293a629337c019bfc010e39ecc2d6e79378b0fec950fd6808a0393db41327/68747470733a2f2f7374796c6563692e696f2f7265706f732f37383733353135382f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/78735158)[![Code Climate](https://camo.githubusercontent.com/1f7c096a1b3288ccb7ff07225912c64ca7aaa58e69343de85ae504678f3a5558/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f6261646765732f6770612e737667)](https://codeclimate.com/github/milkmeowo/starter-framework)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/3b078cad07f7e63f43124ab6252d132686c68e8032f967db1e81df3eb85562a2/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f6261646765732f7175616c6974792d73636f72652e706e673f623d646576656c6f70)](https://scrutinizer-ci.com/g/milkmeowo/starter-framework/?branch=develop)[![Build Status](https://camo.githubusercontent.com/66077b6df68d4960a4290277b90075933581143d61163c3a53ef57dacc607504/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f6261646765732f6275696c642e706e673f623d646576656c6f70)](https://scrutinizer-ci.com/g/milkmeowo/starter-framework/build-status/develop)[![Analytics](https://camo.githubusercontent.com/d0496a8073fe99c30c24f588baf2a6a2b6716f0056313906140c8e201edc4949/68747470733a2f2f67612d626561636f6e2e61707073706f742e636f6d2f55412d39333736333131382d312f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f726561646d65)](https://packagist.org/packages/milkmeowo/starter-framework)[![License](https://camo.githubusercontent.com/edff12d7b8f62edb61461a799f7c61a7027342600de923adabf3b33e72ac0bdc/68747470733a2f2f706f7365722e707567782e6f72672f6d696c6b6d656f776f2f737461727465722d6672616d65776f726b2f6c6963656e7365)](https://packagist.org/packages/milkmeowo/starter-framework)

Overview
========

[](#overview)

This package is suitable for Restful API oriented projects

The Restful APIs as a backend layer which provide simple unified interfaces for frontend: Web and Mobile apps.

It utilized Laravel Passport to authenticate protected resources.

It is fully utilised Repository Design pattern.

Features
========

[](#features)

- Dingo Api Support
- l5-Repository Support
- Laravel Passport Support
- ide-helper Support
- clockwork support
- Cors support
- All of the above are supported for laravel &amp; lumen

Getting started
===============

[](#getting-started)

Installation via Composer
-------------------------

[](#installation-via-composer)

```
composer require milkmeowo/starter-framework

```

Register the ServiceProvider
----------------------------

[](#register-the-serviceprovider)

Register the starter-framework service provider by adding it to the providers array.

**Laravel**

```
'providers' => array(
    ...
    Milkmeowo\Framework\Base\Providers\LaravelServiceProvider::class,
)

```

**Lumen**

Modify the bootstrap flow (bootstrap/app.php file)

```
// Enable Facades
$app->withFacades();

// Enable Eloquent
$app->withEloquent();

$providers = [
    ...
    Milkmeowo\Framework\Base\Providers\LumenServiceProvider::class,
];

array_walk($providers, function ($provider) use ($app) {
    $app->register($provider);
});

```

Publish the configure
---------------------

[](#publish-the-configure)

then copy config files into your project.you can finish this manually

```
cp -R vendor/milkmeowo/starter-framework/config ./config

```

or for **Laravel** you can use

```
php artisan vendor:publish

```

and change `config/auth.php` api guards driver to passport

```
 'guards' => [
        ...
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],

```

Migrate and install Laravel Passport
------------------------------------

[](#migrate-and-install-laravel-passport)

```
# Create new tables for Passport
php artisan migrate

# Install encryption keys and other necessary stuff for Passport
php artisan passport:install

```

Packages Documents
==================

[](#packages-documents)

Dingo
-----

[](#dingo)

[![](https://cloud.githubusercontent.com/assets/829059/9216039/82be51cc-40f6-11e5-88f5-f0cbd07bcc39.png)](https://cloud.githubusercontent.com/assets/829059/9216039/82be51cc-40f6-11e5-88f5-f0cbd07bcc39.png)

**improve**

> Exception Handle Register

add `src/Framework/Dingo/Providers/ExceptionHandlerServiceProvider` to register the common Exception handle

- Illuminate\\Auth\\Access\\AuthorizationException
- Illuminate\\Auth\\AuthenticationException
- Illuminate\\Database\\Eloquent\\ModelNotFoundException
- Illuminate\\Http\\Exception\\HttpResponseException
- League\\OAuth2\\Server\\Exception\\OAuthServerException
- Prettus\\Validator\\Exceptions\\ValidatorException

> ResponseWasMorphed Event Listener

fire `src/Framework/Dingo/Listeners/AddPaginationLinksToResponse`

> Auth Providers

add `Passport` and `improved Oauth2` Auth Providers

you can use with config

```
// file config/api.php

...
    'auth' => [
        Milkmeowo\Framework\Dingo\Auth\Providers\OAuth2::class,
        Milkmeowo\Framework\Dingo\Auth\Providers\Passport::class,
    ],
...

```

**reference:**

[Dingo Api](https://github.com/dingo/api)

[Dingo Api Wiki documentation](https://github.com/dingo/api/wiki)

[dingo-api-wiki-zh](https://github.com/liyu001989/dingo-api-wiki-zh).

l5-Repository
-------------

[](#l5-repository)

[![](https://camo.githubusercontent.com/1f302547079d910a77f026328cd3f354ca0b01a6bbf5416383a46be9cff95ad3/687474703a2f2f6f6f6d75736f752e696f2f696d616765732f6c61726176656c2f6c61726176656c2d6172636869746563747572652f617263683030322e737667)](https://camo.githubusercontent.com/1f302547079d910a77f026328cd3f354ca0b01a6bbf5416383a46be9cff95ad3/687474703a2f2f6f6f6d75736f752e696f2f696d616765732f6c61726176656c2f6c61726176656c2d6172636869746563747572652f617263683030322e737667)

**improve**

> artisan command

```
// example for generate Post Entity Repository
php artisan starter:entity Post

```

auto generate below files

```
modified:   routes/api.php
modified:   app/Providers/RepositoryServiceProvider.php

     add:   app/Api/Controllers/V1/PostsController.php
     add:   app/Models/Post.php
     add:   app/Presenters/PostPresenter.php
     add:   app/Repositories/Criteria/PostCriteria.php
     add:   app/Repositories/Eloquent/PostRepositoryEloquent.php
     add:   app/Repositories/Interfaces/PostRepository.php
     add:   app/Transformers/PostTransformer.php
     add:   app/Validators/PostValidator.php
     add:   database/migrations/2017_01_12_091412_create_posts_table.php
     add:   database/seeds/PostSeeder.php

```

- **Controller**(`index` `store` `show` `update` `destory` `trashedIndex` `trashedShow` `restore`)
- **Models**(BaseModel with ObserveEvent auto track record modify with `create(update/delete)_at(by/ip)`)
- **Presenter**
- **Transformer**(`league/fractal`)
- **Repositories/Criteria**
- **Repositories/Eloquent**(BaseEloquent with ObserverEvents,Cacheable,SoftDeletes Support)
- **Repositories/Interfaces**
- **Validator**(prettus/laravel-validator support)
- **migrations**(new blueprint methods **recordStamps**\[`create(update)_at(by/ip)`\] **softDeletesRecordStamps**\[`delete_at(by/ip)`\])
- **Seeder**
- **append Route**(file `routes/api.php(web.php)` with placeholder `//:end-routes:` can auto-inject Restful api)
- **bind Repository Interface and Eloquent**

> Routes Endpoint

files `routes/api.php` with placeholder `//:end-routes:`

```
