davidepastore/paris-model-generator

Paris model generator from database

v0.1.0 2015-02-13 15:14 UTC

This package is auto-updated.

Last update: 2024-03-29 02:41:59 UTC


README

Paris model generator from database.

Installation

Using command line

$ composer require davidepastore/paris-model-generator:0.1.*

Editing composer.json

Require this generator:

"require": {
  "davidepastore/paris-model-generator": "0.1.*"
}

Setup

You have to setup your application to be sure that the generated classes will be in the right place and with the right namespace. paris-model-generator uses composer.json extra property to put its configuration:

"extra": {
  "paris-model-generator": {
    "namespace": "VendorName\\MyProject\\Models",
    "destination-folder": "src\\"
	}
}

namespace

It is the namespace in which all classes will be generated. It will be also used to create the folder structure to be PSR-4 compliant.

destination-folder

It is the folder in which all files (and folder structure) will be generated.

Usage

Be sure to be in the base directory of the project (where you have your composer.json file) and run:

$ vendor/bin/paris-generator models [--force]

The generator will ask you information about the database, to be sure to connect to it and to retrieve the list of tables. The list of the supported drivers could be found here.

force option

The --force option will not ask you confirmation to overwrite existing files.

Include generated files

You have two chances:

  • psr-4 autoload;
  • classmap autoload.

PSR-4 autoload

If your namespace property is set you can use psr-4 composer autoload:

"autoload" : {
  "psr-4" : {
    "" : "your-destination-folder/"
  }
}

Don't forget to set Model::$auto_prefix_models to be sure that your model is recognized properly when you use Model::factory method:

Model::$auto_prefix_models = 'YourAmazing\\Namespace\\';

Classmap autoload

If your namespace property is empty or not set, you have to autoload using:

"autoload": {
  "classmap" : [
    "your-destination-folder/"
  ]
}

Issues

If you have issues, just open one here.