在 Drupal 中,drupal_alter() 函数与以下模式一起使用:
- 您的模块 (foo) 生成某种类型的对象,例如通过提供 foo_get() 方法。
- 在返回对象之前, foo 模块在其上调用 drupal_alter()。
- drupal_alter() 调用其他模块提供的改变对象的钩子(例如 bar_foo_alter())。
- 返回更改后的对象。
在 Drupal 中,它用于允许模块扩展由其他模块创建的 html 表单。有关它如何在 Drupal 中工作的更多信息:http: //erikwebb.net/blog/drupal-design-patterns/hooks。
这种设计模式有名字吗?总而言之,必要的标准是:
- 模块提供产生对象的方法。
- 任意数量的其他模块可能会在对象返回之前对其进行更改。
- 更改模块仅依赖于生成模块。
- 生产模块不依赖于变更模块。