翻译者:长风Drupal开发
原文地址:https://www.drupal.org/docs/8/creating-custom-modules/getting-started-background-prerequisites-drupal-8
为了适应第三方开发者,Drupal8利用高级PHP语言的特点和复杂的第三方库。虽然有经验的Drupal7开发者可能会看到一些明显的变化,但大部分的基本结构仍将是你熟悉的。
面向对象的程序设计
面向对象的程序设计,虽然最初令人望而生畏,现在已经确立为最佳实践。对于PHP的最佳实践的概况,通过阅读phptherightway.com,Drupal不利用各种不同的工具和技术记载但它作为一个伟大的介绍
PHP语言的许多特点。通过阅读类和对象的PHP官方文档以及其他一些好的读物,复习你的OOP知识:
PHP OOP in Full Effect
Object-oriented programming (on Wikipedia)
What's Object-Oriented Programming? (Online tutorial at codecademy.com)
Object-Oriented PHP for Beginners (at tuts+)
Object Oriented Concepts (at tutorialspoint.com)
Object Oriented Programming with PHP (at phpro.org)
Object Oriented Programming in PHP (at youtube.com)
Foundations of Programming: Object Oriented Design (at lynda.com)
Drupal 8也会使用一些常用的设计模式,你需要确保你有关于这些的基本了解:
The Factory Pattern, and Late static bindings
Software design pattern (on Wikipedia)
Foundations of Programming: Design Patterns (at lynda.com)
PHP的命名空间
如果你不熟悉PHP命名空间的概念,尝试一些这样的文章:
How to use PHP namespaces.
PHP: Namespaces
a video on PHP namespaces.
PHP Namespaces Explained (by Dayle Rees)
Namespacing in PHP (at tuts+)
在大多数情况下,Drupal代码命名空间基于代码所属的模块。
例如
namespace Drupal\block;
依赖注入
虽然依赖注入是真的只是一个面向对象设计模式我们叫它来因为Drupal8对概念的大量使用,它是有一个基本了解,访问和使用的许多核心API的重要。
读了依赖注入对PHP的正确方法,以及与该页上的其
他文章。特别是本文因为Drupal大量使用symfony的2服务容器的引用。
Symfony 2
Symfony 2是一个PHP框架,Drupal借用为了减少在各种PHP项目代码重复,大部分Drupal8用来处理路由、sessions等的代码是从Symfony 2借用的。如果你想了解更多关于这个决定的原因,查看https://prague2013.drupal.org/session/not-invented-here-proudly-found-elsewhere-drupal-8-story
查看Symfony 2手册 http://symfony.com/doc/current/index.html,复习你的Symfony 2知识。对了解Drupal来说,并不是所有的symfony知识都是必须的,了解symfony的工作原理将使你成为一个更好的Drupal开发者和PHP开发者。你可能对symfony glossay也有兴趣。
注释
Drupal8使用php注释,@docblock备注作为一种特殊的语法被添加到你的代码中,为插件的展示、提供附加的信息。
插件(Drupal8 Plugin)
插件提供小块的功能,在这样一种方式,他们可以很容易地换成另一个插件。执行类似功能的插件具有相同的插件类型。例如,“场”是一个插件式组件,每个不同领域的控件(文本字段、文本、日期)是一个插件实现。
Services