Drupal

Drupal 8:本地开发调试

在本地开发 Drupal 8 网站,你需要做点特别的设置,比如不让 Drupal 合并网站使用的 CSS 与 JS  文件,禁用掉 Drupal 的缓存等等。不然你修改了某个地方想看到修改之后的结果,每次都得先去重建一下 Drupal 的缓存。

本地配置文件

为本地开发环境准备一个特别的配置文件,这个配置文件只在本地开发环境上存在,也就是你不需要把这个配置文件放到项目仓库里做版本控制。在这个本地配置文件里,去做一些特别的配置,这样这些配置就只会存在于本地开发环境上。

Drupal 默认的配置文件叫 settings.php,它会在网站目录的下面,比如 sites/default/settings.php,打开这个配置文件,然后查看下面这段代码:

# if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
#   include $app_root . '/' . $site_path . '/settings.local.php';
# }

去掉代码前面的注释符号,让它生效:

if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
  include $app_root . '/' . $site_path . '/settings.local.php';
}

意思就是,如果网站目录下面的存在 settings.local.php 文件,就把它载入进来。这个文件 Drupal 已经准备好了一个参考示例,位置是在 sites/example.settings.local.php,复制一份这个文件,把它放在 sites/default/settings.local.php

Drupal 8:在 Docker 环境里运行

今天的任务是在本地创建一个可以运行在 Docker 上的 Drupal 8 项目。运行环境我已经做好了,用的就是 nest ,这个项目 Compose 了一个一般的 PHP 网站的运行环境,包含 NGINX,PHP,MariaDB,PHPMyAdmin 这些服务。Drupal 8 应该现在推荐用 PHP 的包管理工具 Composer 创建,安装 Drupal 可以用 Drupal Console 或 Drush。现在先介绍一下过程。

运行环境

先把我做的 nest 克隆到本地,放在 ninghao 这个目录的下面。如果你想更折腾一下,可以把 nest 仓库 fork 到自己的 github 帐号下面,然后克隆自己的 nest 远程,这样你可以修改项目,并且如果你觉得自己的修改对别人有帮助,可以对我的 nest 提交 pull request 。

下面我们直接克隆 ninghao 的 nest:

git clone https://github.com/ninghao/nest.git ninghao

我们的会员去了上海的 Drupal 公司

这么多年一直不太了解会员的情况,比如他们在宁皓学到了什么,去了哪里,做了什么。这让我有点惭愧。今天收到一位会员的微信,说要聊点事情。我们用语音聊了将近一个小时,感觉非常地亲切。我也非常开心,得知他去了一家上海挺有名气的 Drupal 公司。更让我兴奋的是,他是远程办公(Remote)。我跟他说,如果我决定做强,也想实施远程办公。

他人在广西,平时除了正常的工作,周末还会在一所职业学院里教书。一开始,教一些前端的东西,后来得知学校要开 CMS 开发课程,就申请了,后来他把 Drupal 引入了这所高校。我说这所学校的学生有福气啊。

两年前他成为宁皓网的会员,学习了 Drupal,他把 Drupal 引入学校,又入职一家专做 Drupal 的公司,而且是远程办公。这让我感到很幸福。其实他跟我联系的主要目的是合作开发一套系统化的课程给他们的学生,因为这家上海的公司想在全国推广 Drupal 。他们非常重视对 Drupal 人才的培养,最近也在公司内部开了对外的培训班。

Drupal 7:支持 emoji 表情符号 😬

Drupal 7.5 开始支持 utf8mb4,一种数据库字符集,有了它你的文章里就可以用 emoji 了,就是这种东西: 😀 😬 😁 😄 😊 。先看一下自己的环境是不是满足 Drupal 的要求,如果满足就可以配置数据库,修改 Drupal 的配置文件,转换数据表,让你的 Drupal 支持 emoji 。

需求

  1. mysql 5.5.3 或以上版本。
  2. PHP MySQL 引擎必须支持 utf8mb4 字符集, libmysqlclient 5.5.3 或以上,mysqlnd 5.0.9 或以上。

新的 Drupal 电子商务框架

18 岁那年我得到一本介绍用一款微软的软件创建电子商务网站的书,很兴奋,不过那本书我只记得标题的一部分。你想在网上卖点什么,可以尝试用 Drupal + Commerce 这个组合来做。Drupal 7 的时代我介绍过 Commerce 这个模块,感觉非常强大,是一套电子商务框架,因为它并没有针对某个具体的工作流程来设计,你完全有能力根据自己的需求去设计你需要的电子商务平台。

我一直想做一个漂亮的电子商务网站,Commerce 有个发行版,不过并不是太吸引人,而且太复杂,我完全不知道是怎么做到的。我希望可以从头开始,这样我知道出了问题,或者遇到问题应该去修改哪里。

《Drupal 与 React Native》课程预告

我们先会介绍一下 Drupal 8 新的 REST API , 了解怎么样获取到 Drupal 上的数据,获取到的数据是什么样的,怎么把数据提交给 Drupal 去存储。然后再学一下怎么样利用 Drupal 的 REST API 创建应用, 我们会使用在 《React 本地应用》系列课程里创建的一个小项目,把这个移动应用的后端服务替换成 Drupal 。

在下面这个视频的演示里,你会看到,我们使用 Drupal 的视图创建了一个可以输出电影列表的 REST 接口,你可以在视图里控制每页输出的项目的数量。

Drupal 8 要来了!

为这次在巴黎恐怖袭击受影响的所有人,传递一点点爱 ...

paris

Drupal 与 WordPress 是我们养家糊口的基本工具。新的 Drupal 8 带给我们很多的惊喜,昨天我们发布了新的 Drupal 8 课程,介绍了一部分核心的操作,也就是 Drupal 的字段,后面还会再出几个核心部分的课程。Drupal 8 会在 11 月 19 号正式发布,您可以组织一个小型聚会,喝两杯,跟朋友一起聊聊新的 Drupal 。您想使用 Drupal 解决的问题,可以留在评论里 :)

简单说下 Drupal 开发的大概流程

问题

我们之前一直用比较原始的方法,就是在本地搭建好环境以后,开始开发 Drupal 网站,基本完成以后,就把网站打个包,传到服务器上,再恢复一下数据库。这样做的问题是,如果网站有了新的修改,如果你直接在本地改,完成以后,还需要重做一些迁移的动作,打包,上传,恢复 ... 如果你直接在服务器上改,又很麻烦,并且有太多不确定的东西,很可能会破坏掉网站,如果你没有备份就很复杂,你要自己判断到底是哪里出了问题。

方法

我找到了一个更好的方法,最近会做成视频。听起来这个方法有些复杂,要做的步骤可能会比之前多一些,不过我认为是更好的方法,而且熟悉之后,我们就不会觉得复杂了,我猜这也是大部分项目开发的流程。

版本控制

同样我们需要在本地开发,好处是速度快,并且,如果你的项目不是一个人,其它的团队成员同样可以在本地有一个项目的开发版本。然后你们都使用 Git 为项目做版本控制,也就是对项目的每次修改都会被保存成一个版本。为项目提供一个远程仓库,团队成员都可以把在本地对项目的修改推送到这个远程仓库上。如果这个网站只有您自己做,也需要使用 Git ,长远看,会带来很多好处。

Ninghao Playbook:自动化配置本地的 Drupal 开发环境

Ninghao Playbook(宁皓剧本),是用 Ansible 写的一个自动化配置 Drupal 本地开发环境的剧本,它需要结合 Vagrant 使用。它可以自动配置虚拟机,安装好 Drupal 所需要的运行环境(nginx,php-fpm,mariadb ... ),还有 Drupal 本身,以及一些常用的模块(views,token,features,module_filter ... )。

playbook

课程预告:Drupal 从头到尾

关于 Drupal ,我们已经说了不少,不过还是留下了很多问题。比如 Drupal 开发的流程应该是什么样的,怎么样使用 Drupal 的 API 来创建自己需要的模块,如何用 Drupal 开发一个真正的产品。今年的一开始,我们主要先解决这三个问题。这是一个系统的课程,可能要持续挺长时间。我打算每个礼拜完成一小部分,然后发布视频,并且一起讨论遇到的问题。为了这个课程,我特意创建了一个论坛(创建中 ... ),这样可以更方便的一起讨论并解决遇到的问题。这个课程结束以后,你应该会对 Drupal 有一个更好的理解,更有自信使用 Drupal 去创建你想要的网站应用。

这开始之前,先留个作业,完成下面这几个学习手册:

  1. 学习手册:Web 开发环境与服务器生产环境
  2. 学习手册:前端开发工作流程
  3. 学习手册:PHP 脚本语言
  4. 学习手册:Drupal 内容管理系统

不需要全部理解,不过至少要知道自己遇到了什么问题,需要什么,才能解决。不用太担心 :)

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点