develme/schema-wireframe

Quickly stub out Laravel models, views and controllers based on MySQL's schema.

v0.0.2 2015-06-14 07:42 UTC

This package is auto-updated.

Last update: 2024-03-27 07:02:16 UTC


README

This package was created to quickly stub/frame out controllers, models, and views in a CRUD fashion.

Installation

Via Composer Require

composer require develme/schema-wireframe --dev

Configuration

Configure schema connection settings within config/database.php, so the package knows how to get table information from MySQL. This connection has to be named schema.

    //...
	'connections' => [
    //...
        'schema' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => 'information_schema',
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
    //...

Make sure to register the service provider within config/app.php

// ...
/*
 * Third Party Service Providers...
 */
'DevelMe\SchemaServiceProvider',
// ...

Generating Files

This process should be done after you run your migrations. It pulls table and column information from MySQL's information_schema database.

Controllers

To generate a controller, you would type:

php artisan make:schema-controller <controller class name> [--table=<table name>] [--model=<model class name>]

Example:

php artisan make:schema-controller Admin\\User --table="users" --model="App\\User"

Please note that when providing namespaces, include two back slashes (\\)

Also note that when providing the model class, the root namespace should also be included

Models

To generate a model, you would type:

php artisan make:schema-model <model class name> [--table=<table name>]

Example:

php artisan make:schema-model User --table="users" 

Please note that the root namespace does not have to be provided here

Views

To generate a view, you would type:

php artisan make:schema-view <model class name> [--table=<table name>] [--theme=<bootstrap|foundation>] [--path=<directory>]

Example 1:

php artisan make:schema-view User --table="users" --theme="bootstrap"

Example 2:

php artisan make:schema-view User --table="users" --path="resources/views/example"

Please note that the root namespace does not have to be provided here

Themes

Currently, only two themes are provided. Bootstrap and Foundation.

Theoretically, you could create a custom theme ad [package root]/src/themes/[theme name]/view but there's a possibility of composer overwriting those files. Support for loading views from another location can be added if the need arises.

MVC Generation

It is possible to generate the model, view, and controller all at once. This is currently an experimental command as it is somewhat restrictive and incomplete

A resource controller can also be appended to your routes.php file. If you say yes when the question arises.

For an MVC Generation, you would type:

php artisan make:schema-app <model class name> <controller class name> [--table=<table name>] [--theme=<bootstrap|foundation>]

Example:

php artisan make:schema-app User Admin\\User --table="users" --theme="bootstrap"