一、在本地搭建drupal环境
1、在本地构建drupal,首先下载相关软件,比如xampp、phpstrom和对应drupal的安装包。这里的xampp版本为7.4.25,drupal版本为9.3.8
2、将drupal的压缩包解压之后放入xampp的htdocs文件夹里,然后在phpstorm里创建新项目选择drupal环境。
详细见《phpstrom关于drupal文件的配置》
二、前期文件的配置
1、本地在xampp文件中找到php.ini文件,在文件里面找到以下代码
memory_limit = 64M |
将这里的64改为1024,重启apache。
2、修改文件权限(实行这一步会报错)
$ chmod -R u+w sites |
3、设置settings.php文件
在settings.php文件中搜索local,这样会在文件接近底部的部分看到三行代码
/** if(file_exists(__DIR__.'/settings.local.php')){ include__DIR__.'/settings.local.php'; } |
这个代码的作用是判断是否存在settings.local.php文件,如果存在,则忽略settings.php而使用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。
4、清空缓存并验证文件生效
打开新建的settings.local.php文件,我们可以看到文件的第52和53行,这两行代码的意思就是关闭CSS和JS聚合功能。
$config['system.performance']['css']['preprocess']=FALSE; $config['system.performance']['js']['preprocess']=FALSE; |
为了检查这个文件是否生效,我们只要看看网站的CSS和JS是不是被聚合了。因此,我们先回到刚才建立好的网站的首页,并检查元素。
我们先切换到性能页面(admin/config/development/performance),点击清空缓存按钮。这个动作是你在做主题开发的时候经常需要重复的一个动作,Drupal通过这种方式来重新加载系统文件和模板文件。
同时在检查源代码页面就可以看到元素样式所对应的css文件名都可读了。
5、添加services,开启twig debug模式
编辑settings.local.php文件,在第39行代码可以让你开启本地的services
/** $settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml'; |
将其改成以下样子
/** $settings['container_yamls'][] = DRUPAL_ROOT . '/sites/default/local.services.yml'; |
再在default文件夹中创建一个local.services.yml文件,在文件中复制以下代码
services: cache.backend.null: class: Drupal\Core\Cache\NullBackendFactory
parameters: twig.config: debug: true auto_reload: true cache: false |
这里的9行代码,前三行是关闭缓存用的,先不管他。因为我们回头还要再次进入settings.local.php文件中进行设置才能生效。
第7行是开启twig debug模式,这样会在渲染页面模板的时候告诉你使用了哪一个模板,并给你一些参考用的模板建议。关于模板和模板建议,我们以后还会讲,这里,你只要能将twig debug模式开启即可。
第8行是自动刷新,当值为true时,一旦源代码被修改,就会自动重新编译twig模板。
6、关闭缓存,检查网站是否出错
回到settings.local.php文件中,把67行和84行的代码前面的注释符号删除
/** $settings['cache']['bins']['render']='cache.backend.null'; |
/** $settings['cache']['bins']['dynamic_page_cache']='cache.backend.null'; |