首頁  >  文章  >  後端開發  >  Doctrine248 命令列工具產生yml/xml/entities

Doctrine248 命令列工具產生yml/xml/entities

WBOY
WBOY原創
2016-07-29 08:58:191032瀏覽

Doctrine2壓縮包的tools目錄用來做一些命令列工作。這裡主要說一下透過tools,把資料庫的表結構自動產生yml/xml/entities,原因是寫那些東西太浪費時間了有木有。

1.透過Doctrine 的orm:convert-mapping指令產生xml/yml

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);

上面是help,下面來一個實例

/var/www/doctrine下面(有的菜鳥問了,cd是個什麼東東,為毛是這個目錄~~cd是什麼呢,拜拜,這種問題百度去。為什麼是這個目錄呢,這是項目文件夾,總之這下面就有doctrine的包了)。前面指令省略解釋,解釋後面的「xml」意思是產生的檔案類型,「config/xml/」是xml存放目錄 ,--from-database的意思是從資料庫產生。 2.生成yml了,然後就要生成entities了

/var/www/doctrine$ php vendor/bin/doctrine orm:convert-mapping xml config/xml/ --from-database
 這個簡單,我的entities放在

/var/www/doctrine/src下面,純粹測試用,後期架構會變化的要先生成yml再生成entities,無法直接生成entities,反正我沒成功,可能操作問題?

PHP ORM這篇文章太少了,因為這篇不常用,說白了PHP ORM卵用不大,純粹方便

以上就介紹了Doctrine248 命令列工具產生yml/xml/entities,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn