Home >Backend Development >PHP Tutorial >Doctrine248 command line tool generates yml/xml/entities
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.