Drupal以编程方式创建实体


drupal create entities programmatically

我使用一个headless drupal为我的前端应用程序公开一个api,我有一个关于drupal中实体的创建和更新过程的问题。如果我能以编程方式创建实体和bundle,就像编写php脚本并运行它一样,这可能会很有用。和其他可能改变我的sql方案和实体字段。

我实际上对drupal很陌生(我习惯了django和迁移文件的工作方式)。我想知道drupal(7或8)是否也有类似的

在Drupal中使用Entity API绝对可以做到这一点。我只在D7中涉猎这个,但它确实是你想要的。当然,这都是使用hooks中的Drupal模块完成的,而不仅仅是一个独立的PHP脚本。

您使用hook_schema创建表,然后使用hook_update_N(其中N是您选择的任意数字)处理模式迁移。实体是用hook_entity_info定义的,然后你需要控制器来管理你的实体、字段和字段实例,告诉Drupal你的实体是如何关联的,以及一些关于显示的信息。

这是一个相当复杂的过程,你第一次运行它。我知道在这里链接到外部资源是不好的形式,但这个主题相当密集。当我在工作中为一个项目创建概念证明时,我发现http://www.zyxware.com/articles/4779/drupal-how-to-create-custom-entity-programatically-in-drupal-7是一个非常有价值的资源。

祝你好运,告诉我进展如何

如果你正在使用Drupal 8, Drupal控制台将会给你很大的帮助。有一个生成实体、控制器、表单和许多其他东西的命令。

对于Drupal 7,实体构建工具包是一种方式

我已经在生产中成功地使用了这两个工具。

从Quint的建议中你可能已经注意到有很多样板代码要写