ab-creative / laravel-maker
Laravel 5.6 scaffolding generator
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/ab-creative/laravel-maker
Requires
- php: >=7.1
- felixkiss/uniquewith-validator: ^3.1
- laravelcollective/html: ^5.5
Requires (Dev)
- laracasts/generators: ^1.1
- symfony/yaml: ^3.3
This package is not auto-updated.
Last update: 2025-10-30 01:41:19 UTC
README
Overview
Laravel Maker is a tool to kick start project development and help with prototyping by creating scaffolding from YAML based definitions.
Premise
There are some amazing and highly complex CRUD and Admin resource_types but the aim of this is to create an opinionated scaffolding builder without many options but that is easy to hack and modify.
The package is designed to read from a yaml file (or files) that define the migrations, class names, labels etc.
The package is also capable of reading from an existing database table to so that crud can be created for that.
Requirements
Laravel 5.5+
Overview
This package reads a yaml file and then creates the following resources:
- Public facing controller
- Admin controller
- Update request
- Store request
- Model
- Model Repository
- Migration
- Model factory
- Routes
- Public view templates
- Admin view templates
Yaml
The yaml files are defined in /database/models
Commands
Contains the Artisan commands
stubs
This directory mirrors the structure of Laravel and is setup to use Request and Repository classes.
These files will processed and placeholders replaced in order to generate the scaffolding files.
Stubs can be overloaded on a individual basis based on a path defined in config
Templates
This also mirrors the structure of Laravel.
e.g. BaseController, BaseModel
These files will be published as is.
Placeholders
__MODEL.NAME__ The name of the model class e.g. Post
__VIEW.RESOURCE.DIRECTORY__ e.g. posts
__VIEW.NAMESPACE.DIRECTORY__ e.g. admin
__ROUTE.PATH__ The Admin route in dot format e.g. posts
__ROUTE.AS__ The route prefix defined as 'as' in the route group variable e.g. admin
__MODEL.NAME.HUMAN__ The singular friendly name of the model e.g. post
__MODEL.NAME.HUMAN.PLURAL__ The plural friendly name of the model e.g. posts
__MODEL.VAR.NAME__ The singular variable name of the model e.g. post
__MODEL.VAR.NAME.PLURAL__ The plural variable name of the model e.g. posts
Getting started
-
Setup a Laravel site as normal...
-
laravel new t6.example.com -
php artisan key:generate -
Edit
.env -
php artisan migrate -
php artisan make:auth -
Create and cd into
/packages/AbCreativedirectory -
git clone https://github.com/ab-creative/laravel-maker.git -
Edit /composer.json to add the package:
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"AbCreative\\LaravelMaker\\": "packages/AbCreative/laravel-maker/src"
}
},
- Add the package to
config/app.phpproviders:
/*
* Package Service Providers...
*/
AbCreative\LaravelMaker\LaravelMakerServiceProvider::class,
-
Copy the test example.yaml definition from
stubs/database/definitions/into the main laravel/database/definitions/ -
Install the composer dependencies from the package in root e.g.
composer require symfony/yaml --dev
composer require laracasts/generators --dev
composer require laravelcollective/html
- Create an admin user if necessary [http://blog.indiefolk.co.uk/laravel-4-create-users-with-artisan-tinker/]
Tests
cd into /packages/abcreative/laravel-maker/ directory
run `../../../vendor/bin/phpuni
How to use
Use the generator via artisan e.g. php artisan build:command
file is a yaml file defined in /database/definitions/
tables a comma separated list of tables
--clean will delete an existing file
--force will overwrite an existing file
build:clean file Delete all the files generated by the package
build:controller file --force --clean Create a new controller
build:crud file --force --clean Create a new model, controllers, routes, views and migration
build:migration file --force --clean Create a new set of migrations
build:model file --force --clean Create a new model
build:request file --force --clean Create a new set of request classes
build:route file --force --clean Create a new route
build:view file --force --clean Create a new set of view files
build:yaml tables --force --clean Create Yaml from one or more database tables
Copyright
This package has been developed by AB Multimedia Ltd
Copyright (c) 2018 AB Multimedia Ltd
For the full copyright and license information, please view the LICENSE file that was distributed with this source code.
License
This package is open-sourced software licensed under the MIT license.