本节将介绍一些必要的基本背景知识。 本书的主题是Drupal8电子商务解决方案,所以对于这些必要的基本背景知识只作粗略的介绍, 意在使读者了解阅读本书的一些前提条件,而不是教会读者这些背景知识。
编程语言:PHP
Drupal是一套使用PHP编程语言编写的Web软件,如果你要成为一名Drupal8开发者, 首要条件是熟悉PHP语言。学习PHP语言的最佳资源是它的官方文档:
源码规范:PSR
PHP是一种类C语言,在源码格式上,有很大的自由度,如果没有公开的规范, 那么大家都按自己的喜好来写代码,开发者在阅读他人所写的代码时,就会感到很困难。
PSR是PHP开源社区公认的一套源码格式规范,学习它是非常有必要的,它的官方文档:
依赖管理:Composer
光会PHP语言是远远不够的,要写好PHP程序,就要懂得使用PHP开源社区的分享宝贵代码资源, Composer是PHP的依赖管理工具,它类似Java的maven、Python的pip或者nodejs的npm。 学习Composer的最佳资料是它的官方文档:
基础类库:Zend Framework 和 Symfony
PHP本身提供了大量的内建函数库,可以方便地完成一些常见的编程任务,但是光靠这些函数库是远远不够的, 要写出好的软件代码,你需要使用类库,它们是一些常用的类,帮助您更好地完成编程任务。
Zend Framework是由PHP的官方公司Zend所设计的系列类库, 而Symfony则是由开源社区创建的一系列类库。 两者之间,有的包是功能重叠的,但更多的是互相补充。
所以不需要考滤学习和使用哪一个,两个都需要学习,两个都要用。 学习它们的最佳资料,是其官方文档:
在很多人的眼中,Zend Framework 和 Symfony 是 MVC框架, 事实上MVC框架只是它们类库中的一个包,由此在类库的基础上同时提供了一套 快速应用开发框架。
Laravel 就是一种快速应用开发框架,它主要以Symfony类库为基础,实现了更多的高层业务功能。
Web系统:Drupal8
Drupal8是一个完整的Web应用程序,但是其结构庞大、扩展性强,因此称它为一个Web系统。
Web应用程序开发者往往倾向于在快速应用开发框架的基础上,完全定制所有功能。 这样的优点是可以完全控制每一行代码,缺点是把重复发明轮子这件事情做到极致。 事实上,这种思维是一种懒惰思维,不愿意花时间去学习他人已经写好的功能代码, 自己写的代码反而不需要学习,所谓的节省学习成本。 而绝大多数情况下,他们也只是写出了一堆只有自己能用的烂代码,一个人闭门造车是做不出好东西的。
Drupal8包含了一个Web应用程序必需具备的一切基础设施。 包括但不限于:用户管理系统,认证、鉴权系统,多语言系统,内容版本化系统, 功能版本更新系统,批量任务处理系统、消息队列系统,等等。
Drupal8拥有极其强大的扩展能力和灵活性,常常刷新开发者的认知。 有些不够了解Drupal的人,拿它来和Wordpress作比较,是非常有问题的, 如果说Wordpress一条游艇,那么Drupal很有可能是一艘航空母舰。
读者需要深刻理解Drupal核心的概念,同时需要了解如何开发一个Drupal8模块。 学习Drupal8的最佳资源,是其官方文档: