davidepastore / paris-model-generator
Paris model generator from database
Requires
- doctrine/dbal: 2.4
- symfony/console: ~2.6
- zendframework/zend-code: ~2.3
This package is auto-updated.
Last update: 2024-10-29 03:58:44 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.