Drupal8

DRUPAL8模块开发 - DRUPAL8 Form API

Drupal8表单类实现了\Drupal\Cyr\Frase\FormInterface,表单的基本工作流由接口的buildForm, validateForm和submitForm方法定义。当一个表单被请求时,它被定义为一个可渲染数组,通常被称为表单API数组或简单的$Form数组。$form数组通过渲染过程转换为HTML并显示给最终用户。当用户提交表单请求到表单显示的同一URL时,Drupal会注意到请求中的传入HTTP POST数据,而这次不是构建表单并将其显示为HTML,而是构建表单,然后继续调用可应用的验证和提交处理程序。

DRUPAL8模块开发 - DRUPAL8数据库API - 事务

Drupal还支持事务,包括不支持事务的数据库的透明后退。但是,当您尝试同时启动两个事务时,事务会变得相当复杂。在这种情况下,数据库之间的行为也不同。在Drupal开发中,事务的例子如下:

DRUPAL8模块开发 - DRUPAL8数据库API - 删除语句

drupal开发中,删除查询必须始终使用查询生成器对象。Drupal使用delete()方法如下:$num_deleted = $connection->delete('mytable') ->condition('myfield', 5) ->execute();

DRUPAL8模块开发 - DRUPAL8数据库API - 合并查询

Drupal开发中,合并查询是一种特殊类型的混合查询。虽然在SQL 2003规范中为它们定义了语法,但实际上没有数据库支持标准语法。然而,大多数使用特定于数据库的语法提供一些替代的实现。Drupal中的合并查询生成器将合并查询的概念抽象为结构化对象,该结构对象可以被编译成每个数据库的适当语法。这些有时被称为“UPSERT”查询,UPDATE 和INSERT的组合。

DRUPAL8模块开发 - DRUPAL8数据库API - 更新查询

在Drupal开发中,更新查询必须始终使用查询生成器对象。某些数据库需要特殊处理LOB(大对象,如文本对MySQL)和BLOB(二进制大对象)的领域,所以一个抽象层必须允许个人数据库驱动程序执行任何特殊处理要求。

DRUPAL8模块开发 - DRUPAL8数据库API - 插入数据(二)

DRUPAL8数据库API - 插入数据第二节中,我们介绍了多插入语句、基于选择查询的结果插入、默认值的使用。Drupal开发中,插入查询对象也可以采用多个值集。也就是说,可以多次调用Values()来将多个INSERT语句并入。究竟如何发生将取决于所讨论的数据库的能力。在大多数数据库中,多个INSERT语句将在事务内部一起执行,以获得更大的数据完整性和速度。在MySQL中,它将使用MySQL的多值插入语法。

DRUPAL8模块开发 - DRUPAL8数据库API - 插入数据(一)

Drupal开发中,插入查询必须始终使用查询生成器对象。某些数据库需要对LoB(大型对象,如MySQL中的文本)和BLB(二进制大对象)字段进行特殊处理,因此需要一个抽象层来允许各个数据库驱动程序执行它们所需的任何特殊处理。使用INSERT()方法启动插入查询如下:

DRUPAL8模块开发 - DRUPAL8数据库API - 取(结果)到一个自定义对象中

Drupal开发中,查询可以基于自定义类获取到对象中。例如,如果我们有一个名为ExampleClass的类,下面的查询将返回示例类的对象。

DRUPAL8模块开发 - DRUPAL8数据库API - 结果集

Drupal8或者Drupal7的选择查询将始终返回一个零或多个记录的结果集对象。根据用例,在Drupal开发过程中有几种方法可以从结果集检索数据。最常见的情况是用 foreach()循环迭代结果集

DRUPAL8模块开发 - DRUPAL8数据库API - 函数和操作

Drupal8的数据库层不提供SQL函数的跨数据库抽象。对于支持的数据库引擎的可移植性,各位Drupal开发者的代码应该只使用已知的ANSI标准的一部分,并支持Drupal8支持的所有数据库。下面是一个仍然不完整的列表。这里推荐使用的表单,因为其他语法变体可能对所有数据库都不起作用

Pages