主页 >> 资源 > Drupal目录结构说明与开发技巧

2013/09/06 | 星期五 分类:资源 | 没有评论 标签: | 作者: | 1,507 views

Drupal目录结构说明与开发技巧

1.Drupal系统文件夹中每一项的细节如下:

include目录包含Drupal使用的库和公共函数;

misc目录存储Drupal安装时使用的javascript和杂项的图标、图片。

modules目录包含核心模块,里面的每个模块都有一个自己的目录。别往里加任何东西,或任何其他目录,除了profiles和sites,你应该将扩展模块加到sites目录。

profiles目录中包含了不同的站点安装profile。

scripts目录包含检查语法、清理代码、命令行运行Drupal、处理cron特别情况、运行测试包(D7)等所需要的脚本。这个目录不在drupal请求生命周期内使用,它们是shell及perl实用脚本。
1-5

sites目录(图1-5)包含了你在设置表单中对设置、主题、模块的修改。当你从贡献模块仓库或写一个模块时,你应当将它们加入到-sites/all/modules中,这是保存所有你的Drupal变更的单独目录。在sites目录中有一个名叫default的子目录,保存一个你的Drupal站点默认的配置文件default.settings.php,Drupal安装器将在你提供的信息基础上修改这些初始设置并且为你的站点生成一个settings.php文件,默认的目录是典型地拷贝并重命名为你的站点的URL,你最终的设置文件将是sites/www.example.com/settings.php。
sites/default/files目录包含Drupal默认基本安装信息,它需要用来存储那些上传到你的站点以备后用的任何文件。一些例子是用来存放用户logo,激活用户头像或其他上传的媒体文件。这些子目录需要drupal运行的服务器的可读可写的权限,如果有权限,Drupal安装器将创建子目录。此外sites/default/files,一个sites/default/private目录可能建立用来存储比较敏感的和不应展示的文件,除非有适当的证明。你可以通过浏览Configuration>FileSystem并进入你想保存私有文件的方式来创建私有文件目录,文件路径就是标题是Private的文本域的文件系统路径。

themes目录包含模板引擎和Drupal默认的主题,你下载的和创立的附加主题不应该放在这里,将它们放到sites/all/themes中。

cron.php用来执行周期性的任务,例如修剪数据库表和计算统计等。
index.php是服务请求的主入口点。
install.php是Drupal安装器的主入口点。
update.php在Drupal版本更新后更新数据库关系模式。
xmlrpc.php接收XML-RPC请求,不打使用XML-RPC时可以从部署中删除。
robots.txt默认的机器人排除规则。
authorize.php运行授权文件操作的管理脚本,例如从drupal.org下载并安装一个新的主题或模块。

2.服务一个请求
对于Drupal接收到一个请求时发生了什么有个概念上的框架非常有帮助。如果你要自己跟踪,那么使用一个好的debugger,在index.php处开始,它接收大多数它的请求。这个序列对于显示简单网页来说比较复杂,但它具有普遍的灵活性。

3.web服务器规则
Drupal运行于web服务器之上,通常是Apache。如果web服务器遵循Drupal的。.htaccess文件,有些PHP这是初始设置的,并且URL是被检查的。差不多所有对Drupal的调用都是通过index.php,例如一个到http://example.com/foo/bar的调用经历下列流程:
a.Drupal的.htaccess文件的mod_rewrite规则查看送入的URL并从路径中分离出基本URL,本例中,路径是foo/bar。
b.路径被指派为URL请求操作符q的参数、
c.结果URL是http://example.com/index.php?q=foo/bar。
d.Drupal像内部路径一样处理foo/bar并且交由index.php开始处理。
如同这个处理结果,Drupal精确地一同样方式处理http://example.com/index.php?q=foo/bar和http://example.com/foo/bar,因为这两种情况内部路径相同,这可以使Drupal不使用怪异的URL字符,而使用Clean URL。

在作为替代的其它web服务器,如微软的IIS,clean URL可以使用ISAPI模块像ISAPI重写那样取得。IIS 7 和后面版本支持直接重写。如果你的站点运行于IIS7或更高版本,你应当校验用于激活clean URL的web.config文件,并且使它不能被窥探到,像.install, .module, .test, .theme, .profile, .info和.inc 文件一样。

4.启动过程
Drupal每个请求的自启动过程都经历一系列启动阶段,这些阶段在bootstrap.inc中定义,如下表描述:
阶段 目标
Configuration 设置贯穿启动过程的公用变量。
Database 初始化数据库系统且注册自动装入函数。
Variables 装入系统变量和所有已激活的启动模块。
Session 初始化会话处理。
Page Header 启动hook_boot(),初始化锁系统并且发送默认的HTTP头。
Language 初始化所有定义的语言类型。
Full 最终阶段:Drupal现在完全装入,此阶段校验和修正输入数据。

5.处理请求
回调函数的工作是必须处理和累积要完成请求所必需的数据。例如,如果接收到一个内容请求http://example.com/q=node/3,URL被映射到node.module的函数node_page_vies(),进一步处理是从数据库检索出这个node数据并将它放进一个数据结构,然后就是主题化它的时候了。

6.主题化数据
主题化牵扯翻译检索出的数据、操作或新建HTML(或XML或其它输出格式)。Drupal将使用管理员选择的主题给web页面以恰当的视觉和感觉,结果输出被送到web浏览器或其它HTTP客户端。

7.总结
读完这章,你能大概了解Drupal怎样工作并且对Drupal处理一个请求时发生什么有个大概的了解。一些创造web页面的组成部分将在下面章节详细叙述。

  • 本文目前尚无任何评论.
    1. 本文目前尚无任何 trackbacks 和 pingbacks.