Druapl8模块开发-入门-背景与前提

翻译者:长风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