跳转到主要内容

主页内容

Drupal主题开发(一)开发前配置

由 webadmin 发布于 阅读 33 次

一、设置文件权限

        由于我们在开发中会需要修改web/sites/下面的一些文件,默认情况下这里面的文件不允许被修改,所以需要给这里面的文件设置权限,以便在开发过程中可以对文件进行修改。

进入web目录:cd web,执行以下命令:

$ chmod -R u+w sites
$ chmod -Rf 775 sites/default

二、开启并创建settings.local.php文件

1、开启并创建settings.local.php文件

       在web/sites/default下找到settings.php文件,在文件中搜索“local.”,找到如下三行代码,并将每行代码前的注释符去掉。

修改后:

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

         这样做的原因是,由于这个文件包含了各种参数,而开发团队中不同角色的人所需要用到的参数值往往不一样。所以大家应该各自使用自己的settings.local.php文件。

         比如,作为主题开发者,我们需要关闭网站JS和CSS的聚合功能,这样才能在开发的过程中找到我们需要的文件。因为,如果JS或者CSS文件被聚合了,系统就会用多个文件去生成一个大的文件,drupal用这种方式来减少http的请求数量,并以此来加快网站的打开速度。但是我们在开发主题的时候,就不能使用这个功能。

        所以我们需要建立一个只在我们自己本地起作用的settings.php文件。这个文件在上传和共享代码的时候,可以被忽略。这就保证了我们对这个本地文件的设置,不会影响到其他人。

        Drupal的开发者已经为我们考虑到了这个需求,因此他们在sites文件夹中为我们准备了一个example.settings.local.php文件,我们需要做的是,拷贝这个文件并放置在sites/default目录下(注意路径,是放到default文件夹中),并把文件名改成settings.local.php。

2、验证配置文件是否生效

     在settings.local.php配置文件里面有如下两个配置项:

这两个配置项的作用是设置js和css是否聚合,默认值为FALSE,此时页面加载的css和js是非聚合的:

将以上配置项改的值改为TRUE后,js和css都聚合了:

三、添加services并开启twig debug模式

1、修改配置

     在settings.local.php中找到如下这行代码:

/**
 * Enable local development services.
 */
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';

将其改为:

/**
 * Enable local development services.
 */
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/default/local.services.yml';

        这样做的意义和作用,类似之前我们创建settings.local.php文件。是为了让你创建一个自己独立的工作环境,而不受其他人的影响,也不会影响其他人。所以,同样的,这个文件在用git提交的时候应该被忽略。

2、准备services文件并开发twig debug

       在web/sites/default下创建一个名为“local.services.yml”的文件,并粘贴如下代码:

#关闭缓存
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory

parameters:
  twig.config:
    debug: true #开启twig debug模式
    auto_reload: true #自动刷新,当值为true时,一旦源代码被修改,就会自动重新编译twig模板
    cache: false #关闭缓存

清空缓存后打开代码审查可以看到多了一些注释代码,这就说明twig debug服务已经开启了。

四、关闭缓存,检查网站是否出错

         在settings.local.php文件中找到如下两行代码(以drupal11为例,这两行代码分别在65行和96行):

$settings['cache']['bins']['render'] = 'cache.backend.null';
#和
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

将这两行代码前面的“#”去掉(取消注释)。然后切换到浏览器,刷新首页,如果这个时候首页能够正常打开,就可以了。

        需要注意的是,为了正确的加载service,比如 twig debug 和禁用缓存,我们先创建了local.services.yml文件,并且在文件中将cache设置为false,然后第一次清空了缓存。接着,我们又回到settings.local.php文件中开启第65行和96行的代码,并第二次清空了缓存。这里的操作顺序是非常重要的。最好按照这个步骤来操作,不然最后刷新首页的时候会发生错误,整个网站就挂了。