n2boost/laravel-doctrine-mapping

Downloads

1176

Stars

2

Version

2.0.1

Generate Entities and Sync Database with Yml Config File

This package allows you to manage database scheme with yml orm config.

The orm config file just like this:

Entity\User:
    type: entity
    table: user
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: IDENTITY
    fields:
        username:
            type: string
            nullable: true
            length: 128
        password:
            type: string
            nullable: true

Installation

Laravel

This package can be used in Laravel 5.4 or higher.

You can install the package via composer:

composer require n2boost/laravel-doctrine-mapping dev-master

In Laravel 5.5 the service provider will automatically get registered. In older versions of the framework just add the service provider in config/app.php file:

'providers' => [
    // ...
    N2boost\LaravelDoctrineMapping\LaravelDoctrineMappingServiceProvider::class,
];

You can publish the config file with:

php artisan vendor:publish --provider="N2boost\LaravelDoctrineMapping\LaravelDoctrineMappingServiceProvider::class" --tag="config"

If it doesn't works, please type:

php artisan vendor:publish

And select the true number options.

When published, the config/laravel-doctrine-mapping.php config file contains:

return [

    /*
     * Mapping Config Engines.
     * Can set to: yaml
     */

    'mapping_type' => 'yaml',

    /*
     * Mapping config files dir
     * full path will like this example: config/mappings/yaml/User.dcm.yml
     */
    'mapping_file_dir' => 'config/mappings',

    'entities_file_dir' => 'resources/classes',

    'profile' => 'local',
    'isDevMode' => true,

    'use_connection_pool' => 'laravel', // laravel, self
    'connection' => 'mysql',

    'connections' => [
        'mysql' => [
            'driver' => 'pdo_mysql',
            'host' => '127.0.0.1',
            'port' => 3306,
            'user' => 'root',
            'password' => '',
            'dbname' => 'hunter',
            'charset' => 'utf8mb4',
            'collate' => 'utf8mb4_unicode_ci',
        ]
    ]
];

If you use yaml config file engine, please install this dependence:

composer require symfony/yaml

Usage

Config Yml-Orm

Generate Entities

php artisan n2boost:orm:generate-entities

Sync Database

php artisan n2boost:orm:scheme-tool:update

Sponsor

文档参考:

Laravel 5.5 Package Development – Markus Tripp – Medium How to create a Laravel 5 package in 10 easy steps - Laravel Daily

Design

Config file

config/laravel-doctrine-mapping.php

  • 配置数据库连接
  • 配置 mapping 文件目录
  • 配置 entity 生成文件目录

Command Lines

  • php artisan n2boost:orm:generate-entities
  • php artisan n2boost:orm:scheme-tool:update

Tools

composer remove symfony/yaml composer require symfony/yaml

n2boost

Author

n2boost