Home  >  Article  >  Backend Development  >  Doctrine248 command line tool generates yml/xml/entities

Doctrine248 command line tool generates yml/xml/entities

WBOY
WBOYOriginal
2016-07-29 08:58:191034browse

The tools directory of the Doctrine2 compressed package is used to do some command line work. Here we mainly talk about using tools to automatically generate yml/xml/entities from the table structure of the database. The reason is that writing those things is a waste of time.

1. Generate xml/yml through Doctrine’s orm:convert-mapping command

Usage:
  orm:convert-mapping [options] [--] <to-type> <dest-path>
  orm:convert:mapping

Arguments:
  to-type                        The mapping type to be converted.
  dest-path                      The path to generate your entities classes.

Options:
      --filter=FILTER            A string pattern used to match entities that should be processed. (multiple values allowed)
      --force                    Force to overwrite existing mapping files.
      --from-database            Whether or not to convert mapping information from existing database.
      --extend[=EXTEND]          Defines a base class to be extended by generated entity classes.
      --num-spaces[=NUM-SPACES]  Defines the number of indentation spaces [default: 4]
      --namespace[=NAMESPACE]    Defines a namespace for the generated entity classes, if converted from database.
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
 Convert mapping information between supported formats.
 
 This is an execute one-time command. It should not be necessary for
 you to call this method multiple times, especially when using the --from-database
 flag.
 
 Converting an existing database schema into mapping files only solves about 70-80%
 of the necessary mapping information. Additionally the detection from an existing
 database cannot detect inverse associations, inheritance types,
 entities with foreign keys as primary keys and many of the
 semantical operations on associations such as cascade.
 
 Hint: There is no need to convert YAML or XML mapping files to annotations
 every time you make changes. All mapping drivers are first class citizens
 in Doctrine 2 and can be used as runtime mapping for the ORM.
 
 Hint: If you have a database with tables that should not be managed
 by the ORM, you can use a DBAL functionality to filter the tables and sequences down
 on a global level:
 
     $config->setFilterSchemaAssetsExpression($regexp);

The above is help, here is an example

/var/www/doctrine$ php vendor/bin/doctrine orm:convert-mapping xml config/xml/ --from-database

Here is the command to be executed on Linux, first cd to Under /var/www/doctrine (some rookies asked, what is cd, why is this directory~~What is cd, bye, go to Baidu for this kind of question. Why is this directory, this is a project folder, in short, there is the doctrine package below). The previous command omits the explanation. The "xml" behind the explanation means the generated file type, "config/xml/" is the xml storage directory, and --from-database means generated from the database.

2. Generate yml, and then generate entities

/var/www/doctrine$ php vendor/bin/doctrine orm:generate-entities src/ --regenerate-entities

This is simple, my entities are placed under /var/www/doctrine/src, purely for testing, and the later architecture will be The changed

requires first generating yml and then generating entities. Entities cannot be generated directly. Anyway, I didn't succeed. Maybe there is an operation problem?

There are too few articles about PHP ORM, because it is not commonly used. To put it bluntly, PHP ORM is not very useful, it is purely convenient

The above introduces the Doctrine248 command line tool to generate yml/xml/entities, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn