Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure Doctrine to use yaml mapping on Symfony 4

I'm new to Symfony 4

I use Doctrine an I want to use yaml entity mapping. So i configured the file doctrine.yaml and change type:annotation to type:yml.

And when I tried php bin/console make:entity, there is no yaml mapping file generated linked to this entity

this is my doctrine.yaml file:

parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: '5.7'
        charset: utf8mb4

        # With Symfony 3.3, remove the `resolve:` prefix
        url: '%env(resolve:DATABASE_URL)%'
    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: yml
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App
like image 991
Ny Aina Avatar asked Dec 21 '17 08:12

Ny Aina


People also ask

Does Symfony use doctrine?

Symfony provides all the tools you need to use databases in your applications thanks to Doctrine, the best set of PHP libraries to work with databases. These tools support relational databases like MySQL and PostgreSQL and also NoSQL databases like MongoDB.

What is doctrine DBAL?

The Doctrine Database Abstraction Layer (DBAL) is an abstraction layer that sits on top of PDO and offers an intuitive and flexible API for communicating with the most popular relational databases.

How do I know my doctrine version?

Check out the file vendor/doctrine/orm/lib/Doctrine/ORM/Version. php , there is a constant in there that shows the version. It's also accessible from a running app but this is easier.


Video Answer


1 Answers

An example of mapping following your needs:

Change the file name including the "orm" text doctrine.orm.yaml, and take a look at the dir option in the example below (that follows your needs):

App:
    is_bundle: false
    type: yml
    # "dir" in this case must be pointed where are stored your doctrine files (can be anywhere inside the project dir)
    dir: "%kernel.project_dir%/config/doctrine"
    prefix: App\Entity

Reference: Doctrine yaml mapping (v2.6 current)

like image 190
gp_sflover Avatar answered Oct 13 '22 01:10

gp_sflover