Drupal 8 Entity常用

获取一个Entity:

$entity = \Drupal::entityTypeManager()->getStorage('MyEntityType')->load(9);
dpm($entity);

修改Entity 数据

$entity = \Drupal::entityTypeManager()->getStorage('MyEntityType')->load(9);
$entity->myfield = 1;
$entity->save();

Drupal 8定义一个block

http://drupal.org/node/1880620
blocks在drupal8已经变成了一个插件(plugin)形式.
Block types现在被定义为block plugins 而不是hook_block_info().。
blocks 现在支持多个block接口, 所以同一个block可以在主题多次使用. 每个block都有自己的配置并可以删除。
TODO:

API 的改变

hook_block_info()已经被删除 Block types 现在被新增加的 block plugin定义.
hook_block_info_alter(已经被删除。这个新的 hook_block_alter() 应该取而代之的被利用hook_block_configure(), hook_block_save(), and hook_block_view() 已经被 block plugin 的方法代替了.。
hook_block_list_alter()已经被删除, Modules 能够改变block 的可视性通过实施hook_block_access()来代替。
hook_block_MODULE_DELTA_alter()已经被 hook_block_ID_alter() an和hook_block_NAME_alter().取代。

案例

定义block 类型

将MyBlock.php plugin这个类文件放在下面这个目录中, Drupal 会自动判断它是一个block的插件:

my_module/lib/Drupal/my_module/Plugin/Block

(请看标准类加载),当启用my_module时, 这个插件类文件会被自动引用