纳速健身

标题: 实战Drupal之总览篇 [打印本页]

作者: awagink    时间: 2015-8-16 18:40
标题: 实战Drupal之总览篇
因为工作的原因,需要基于Drupal做开发,因此不得不从零开始系统的了解Drupal以及尝试完成以下的一系列工作,包括:
经过2周的时间,基本完成了前2项工作,觉得有必要将很多东西记录下来备忘及分享。那么首先还是谈一些我对Drupal的整体感受以及开发中要注意的点
Drupal为什么难
提起Drupal似乎看到最多的字眼就是“难上手”、“学习曲线陡峭”这样的词汇,而实际体验了一下,确实如此。但是问题应该进一步化简为:Drupal为什么难,可以归结到哪些问题点?这样才有可能将其一一解决,让难事变得简单,而不是一味的抱怨。
在我看来,Drupal之所以难,主要可以归结到下面的点:
那么对于这些存在的问题应当如何解决呢。
对于问题1,我在之前的关于不要重复造轮子的二三事中也有过一些解决方法。可以说英文阅读能力是程序员的核心基本功了,如果不去设法提高自己的能力,而靠为数不多的中文资料过活或者转投一些不成熟的国产CMS,无形中你就已经给自己设置了一道难以跨越的GFW。
对于教程的问题,我本人一向是彻底的实践派,尤其鉴于Drupal大量依赖模块的特性,可能即便从头到尾看完一本书,遇到实际项目还是无从下手。只是有一些事项需要注意一下,详见后文。
而对于Drupal繁多琐碎的Hook系统,可以说是一把双刃剑,既带来了灵活的处理方式,相应的也带来了更重的学习负担。不过其实还是可以在一定程度上取巧的,比如主题开发,按Drupal的设计,合格的主题需要复用Drupal规定的标签及属性,这样做的目的是可以借助CMS的Block管理管理员在后台可以自由组织页面,这样意味着我们没有办法自由组织HTML标签,让主题定制有很大的限制。但其实实际项目中我们无需那么规范的主题,因为大部分页面都会有唯一固定的布局。活用Views/Services完全可以在短时间内以不依赖Drupal规则快速上手,关于这一点可能会在之后的日志中说明。
开始Drupal项目的注意点
下面都是一些我在开始Drupal项目后总结的注意点/坑点,总结如下:
经验谈1:恢复后台界面为英文
虽然中文界面可能在短期内用起来会舒服一点,但是从长远计,无论是检索资料还是参考其他文章时,英文关键词能带来更准确的结果,避免因为翻译引起的操作误区。
经验谈2:安装模块后第一时间到权限页面去开启
安装模块后,需要提醒自己第一时间去模块的权限页面去设置权限, 即Administration › People › Permissions
只有开启权限后才能在后台进行进一步的设置。
经验谈3:开发时关闭缓存
Drupal内置了大量的缓存机制来提升性能,但是在开发环境中,最好将其全部关闭,才能最快的看到修改的结果
进入后台
administer -> configuration -> perfromance
都取消勾选。
另外为了让主题的修改即时生效,需要在主题的template.php的最上方加入
drupal_theme_rebuild();经验谈4:避免修改Drupal核心文件
在Drupal的文件结构中,模块与主题可以安装在drupal/modules、drupal/themes下,也可以安装在drupal/sites/all/modules、drupal/sites/all/themes下。建议选择后者,这也是官方所推荐的。因为这样一来,项目的修改可以集中在sites目录下,当Drupal版本升级时,可以直接覆盖所有核心文件而无需有其他的担心。
当然Drupal由于将web根目录设定在代码的根目录,从安全角度考虑不注意的话可能会被访问到类库的文件,所以可以控制一下除sites目录以外的文件权限。
经验谈5:Drupal报错时的处理
由于Drupal自己接管了php的错误处理,所以一般发生数据库错误时,屏幕只会出现

The website encountered an unexpected error. Please try again later.

的提示。
一般来说如果发生这种错误,可以在后台 Administration › Reports › Recent log messages查看错误日志。
但如果有时候发生了更恶劣的情况,比如安装了某些模块,可能会报出上述错误并且连后台都无法进入。
那么此时可以去数据库查看watchdog数据表,variables字段保存了错误信息,可以用编辑器打开查看错误明细(这需要启用Database logging模块)。






欢迎光临 纳速健身 (https://nasue.com/) Powered by Discuz! X3.4