原文链接:https://drupal.org/community-initiatives/drupal-core/d8dx
目标
Drupal 之所以伟大的其中一个原因就是它可将通过非程序员的手奇特而惊艳的东西放入网页。我们的社区很大程度上的将非开发者转换成了开发者,这都归功于Drupal7及以前版本可接入,可编程的DrupalAPI视角。在Drupal8中,事情却变得更为复杂了,随着灵活性的大幅提升,即使是做简单的工作,在精神上也变得冗长了
这一举措是的使得一些关键的开发者体验发生了重大变化,这是为了让一些没有编程背景却需要做更多有趣的事情的开发者可以更多地接入。
报告开发者体验议题
I我试图将我的模块移植到drupal 8.并且考虑到D8的开发者体验,怎样可以帮助修正它?
请将它告诉核心的开发者,我们很愿意看到你如同我们一样的喜欢Drupal 8!
- 查找8.x议题队列 找到现有的 DX (开发者体验) 标签的议题.
- 如果你没有找到现有的议题, 创建一个 DX (开发者体验) 标签的议题.
- 需要包含你如何期望,你都试过了些什么, 发生了什么, 你在哪里被卡住了, 什么更好地帮助您, 等等.
- 发一个 D8 DX 后设议题 链接,把它带到那些议题。
我们会用这个"用户测试" 数据去建立一个正式的计划来修复D8的用户体验 DX.
向导原理
- 新手学习时首先会复制/粘贴和修改,我们将继续为他们提供这样的能力,特别是一些简单的任务.
- 我们需要把常用的任务变简单,不常用任务变可行:https://gist.github.com/webchickenator/4409685 是一个 D6 和 D7 全部钩子的列表, 它是按照使用频率排序的.
- Drupal 8 在这一点上将改变它的方式; 比如说, 我们将为所有东西更换过程方法, 我们将不会取消插件系统.
- 但是,但是我们确实在寻找抽象掉复杂度的方法,大量反锁的“样板”代码, 和其他的精神障碍, 尤其是对那些 "90% 的情况" 的贡献.
命中目录(草稿)
一般来讲, 任何关于 DX (开发着体验) 标签的主要严重的问题. 这里有一些例子。正当我们扩展议题时,这里有一个列表正在紧张的开发之中. 请自由的将您的议题添加在这里
高优先度
* #1971198: [元] Drupal and PSR-0/PSR-4 类载入: PSR-0 被定义在不同的PHP框架下分享的方法。协议上讲, 贡献于Drupal的模块是Drupal特殊化的, 并且直接的结构提升了和该情况详细而无关的重复使用. 即将推出的 PSR-4标准帮助实现这些。
* #2049159: 创建一个 ControllerBase类来停止悲剧的样板代码: 现在,甚至连“hello world”页面都要挣扎于依赖 注入容器的概念。此过程引入了一个基类常见的依赖已经使模块开发人员可以创建自己的页面回调。
* #2059245: 添加一个 FormBase类开封装常用函数: 同上的形式。
* 在一般情况下,停止泄漏的的抽象错乱: #2087279: 添加一个 config() 方法到 FormBase #2018411: 找个好点的 DX 用于注入翻译
* #2023613: 考虑从services.yml 到 events.yml 移动的事件注册 : 转换 2 PHP 类 和 4行 of YAML 到 4 行 YAML. Nice.
* #2106873: [元] 扩展 Drupal 8 api.d.o "话题" 列表 以至于涵盖更多概念 : 这是开发人员最经常访问的资源,让我们确保他们可以找到所有的东西。
* #2107875: [元] 在 *.Drupal.org集中 Drupal 8 文档: 分片是一个巨大的DX问题。有成千上万宝贵的资源在那里,但是真的很难找到他们。
...
底优先度
* #2057589: [文档清理]ControllerInterface 到 ContainerInjectionInterface 重命名:“ControllerInterface”作为一个名字太普通了,意味着它即使它真那些想要依赖注入的所需要,也被用于所有的页面控制。重命名它,以至于它更清楚。
* #2051097: 在 *.routing.yml文件转换 "pattern" 到 "path" : Symfony 已经改了 "pattern" 到 "path" 作为 YAML 的关键字去定义一个路径. 我们应采取相同的措施以至于Symfony的文档被阅读时不会产生困扰。
* #2053489: \Drupal throughout 核心标准化 : 现在 我们用 Drupal 的模块 但是 \Drupal 用类. 这一直弄砸了所有人是的批量评论更为困难。查看更多讨论: #1614186: "本地" PHP 类代码标准 比如 stdClass 的命名空间代码 .
在中间什么位置/还没有评价
* #1391694: 为实体参数使用类型提示: 和接口而不是类的类型提示在贡献时提供了更多的灵活性, 但是 EntityInterface 实在太普通了引入特定实体接口来提升它, 同时给开发者提供更简洁的参考去了解 $node所具有的实体、方法.
* #2085429: 提供一个简单的列表控制器去设置实体: 减少定义新的插件类型所需要的类的数量。
* #2081945: 在面向对象代码中重新引入 'private' 可见性.: 我们在很多地方转换到 OO 代码, 但是并没有制作基本的 OO 代码. 这也太傻了.
* 有围绕简化插件探索的一系列问题,使其更加易上手: #2065571:添加 YAML 插件探索 #2074407: 写基于钩子插件探索的测试 ...
* #1966246: [元] 为插件类型引入特殊注解: @插件实在太普通了, 并且没有任何文档,例如,块插件需要一个视图插件。通过引入特定类型的注解插件,可以解决。
* #1880976: [meta] D8端口例子 和 #1532612: 将案例工程移动到 Drupal 核心: 确保所有这些新开发者体验有高质量的代码复制和粘贴。
* #2025883: Drupal 的 PHPUnit bootstrap.php 没有注册/core模块命名空间 and #2056607: /core/phpunit.xml.dist 只寻找最高层贡献模块: 允许开发者运用 PHPUnit 去写他们高质量的代码.
* #2090353: 更改通知不需要按把使用陈述插入到插件类: 不需要为傻X插件使用陈述
* #2098795: 为 RouteSubscriber类创建基础类 : 简化流程,增加动态生成的路由。以及 #2092529: [元] 提升 DX 定义客户路由。
* #2100511: 制作 YAML 路由注册 使得DX变的开心 : 通过 YAML 提升增加静态路由的过程. * #2104347: 统一 \Drupal\Core\Entity\EntityAccessControllerInterface access 和 createAccess 方法之间的参数: 似的事情更常规 * #2107137: 为声明自定义访问检查器修复用户体验: 不知道究竟怎么办,但我们需要使这个容易做。 * #2105557: 添加 admin_permission 到 EntityType 注解提供简单的默认访问处理: 样板 --; * #2100131: 简化注册方式访问检查器: 一样 :)