Moodle - 在创建新插件时使用 plugin/db/install.xml 或 plugin/db/install.php?

Moodle - use plugin/db/install.xml or plugin/db/install.php when creating a new plugin?

有什么理由让我更喜欢其中一种为插件创建新数据库表的方法而不是另一种方法?似乎大多数核心插件都使用 XML 文件,但我知道我也可以使用 $DB->get_manager() 来创建表,就像在升级脚本中一样。

它们都被使用,但出于不同的原因。

install.xml 用于创建您需要的任何数据库 table。您应该使用 xmldb 编辑器来创建该文件。除了创建文件,它还会检查任何受限列和 table 名称 - https://docs.moodle.org/dev/XMLDB_editor

install.php 在 install.xml 之后直接执行,当您想要设置任何您需要的数据或设置时使用。例如,如果您在 install.xml 中创建查找 table,则使用 install.php 填充 table.

如果您想对核心 table 进行任何更改,您还应该使用 install.php。

请注意 install.xml 和 install.php 只被调用一次。因此,如果插件已经安装,那么您将需要使用 upgrade.php 进行任何更改。

你应该保持 install.xml 和 install.php 为最新,以防你想在其他地方安装插件。