Technology Stack技术堆栈
Drupal的设计目标包括了两点,在便宜的互联网主机租用提供商的主机上运行良好,以及,能够分布式的运行在大规模分布式网站上。前者意味着使用最流行和最被广泛接受的技术,后者,则意味着谨慎的,优秀的编码。Drupal的技术堆栈如图 1-1 所示
在这个技术堆栈中,操作系统的位置很低,也就是说Drupal并不是很关心你使用了什么操作系统,只要它能支持PHP就行。
被Drupal
最为广泛使用的Web
服务器是Apache
,但是其它服务器Drupal
也支持,包括微软的IIS
。由于Drupal
和Apache
之间悠长的历史,Drupal
自带了.htaccess
文件来为Drupal
的安装提供安全保证。Clean URL
功能 –
也就是那些不带有问号、&
号或其它奇怪字符的URL –
是由Apache
的mod_rewrite
模块来提供的。这点尤其重要,因为当从其它CMS
系统或是静态文件移植内容时,内容的URL
地址不应该被改变,按照Tim Berners Lee(
http://www.w3.org/Provider/Style/URI)
的说法,不改变URI
的做法是非常酷的。Clean URLs
这种功能在其它Web
服务器上也是允许存在的,只要使用了对应Web
服务器的URL
重写功能即可。
Drupal堆栈中的下一层,也就是数据库层,Drupal提供了轻量级的数据库抽象层。该层提供了一种公用SQL查询方式,可实现在无需重构任何业务代码的情况下使用不同厂商的数据库。这一点已经在MySQL和PostgreSQL上被广泛测试,但是对于Microsoft SQL Server和Oracle的支持还正在开发中。
Drupal
是用PHP
写的。因为PHP
是一门很容易上手的语言,所以有很多PHP
的程序,都是由新手写的。这些新手开发的程序中的代码质量,带给了PHP
很不好的名声。然而事实是,PHP
也是可以写出高质量代码的。所有的Drupal
内核代码都遵守了严格的编程规范(
http://drupal.org/nodes/318)
并且接受了开源软件流程非常彻底的审查。对Drupal
来说,PHP
的低学习曲线意味着为软件贡献者设置了很低的进入门槛,但审查流程确保了门槛低的同时不会牺牲最终产品的质量。同时从Drupal
社区中收到的反馈又能帮助初学者们提高来改进他们的技巧。