Đối với Drupal 8, trong quá trình bạn phát triển (development) cho module hay theme, để những dòng code của bạn được thực thi khi tải lại trang, bạn cần phải xoá bộ nhớ đệm (clear cache) để xoá cache render, cache động hay cache twig.
Nếu như bạn đã đọc qua bài viết Những lệnh drush cơ bản, bạn có thể dùng lệnh drush cr. Tuy nhiên, dù bạn sử dụng drush để clear cache thì việc này vẫn khiến bạn mất khá nhiều thời gian. Chính vì vậy, bạn cần tắt tính năng cache trong quá trình development.
Mình sẽ hướng dẫn bạn 2 cách sau:
1. CẤU HÌNH TÍNH NĂNG LOCAL DEVELOPMENT
1.1. Sao chép tập tin example.settings.local.php trong thư mục sites rồi đổi tên thành settings.local.php và đặt trong đường dẫn sites/default
cp sites/example.settings.local.php sites/default/settings.local.php
1.2. Sửa tập tin settings.php trong sites/default rồi bỏ chú thích (uncomment) dòng code sau (ở gần cuối tập tin, phía trên phần cấu hình cơ sở dữ liệu):
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
1.3. Kiểm tra tập tin settings.local.php xem đã bỏ chú thích dòng code này chưa:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
Nếu chưa thì hãy bỏ chú thích.
Mặc định trong tập tin development.service.yml chứa dòng cấu hình tắt tính năng Drupal cache:
parameters:
http.response.debug_cacheability_headers: true
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
1.4. Để bật tính năng css and js aggregation, cài đặt những tham số sau bằng TRUE trong tập tin settings.local.php:
$config['system.performance']['css']['preprocess'] = TRUE;
$config['system.performance']['js']['preprocess'] = TRUE;
1.5. Để tắt cache render, bỏ chú thích dòng lệnh sau trong tập tin settings.local.php:
$settings['cache']['bins']['render'] = 'cache.backend.null';
1.6. Để tắt cache trang động (dynamic page cache), bỏ chú tích dòng lệnh sau trong tập tin settings.local.php:
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
1.7. Để tắt cache trang nội bộ (internal page cache), trong tập tin settings.local.php, bỏ chú thích dòng lệnh sau:
$settings['cache']['bins']['page'] = 'cache.backend.null';
1.8. Nếu bạn có nhu cầu development module hoặc theme, hãy bỏ chú thích và cài đặt giá trị bằng FALSE cho dòng lệnh sau trong tập tin settings.local.php
$settings['extension_discovery_scan_tests'] = FALSE;
1.9. Để tắt tính năng cache twig, hãy thêm những dòng lệnh sau vào tập tin development.services.yml ở thư mục sites:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
Cuối cùng, tập tin development.services.yml sẽ giống như sau:
# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
1.10. Để chắc chắn cho việc cập nhật những cấu hình trên, bạn hãy dùng lệnh cache rebuild:
drush cr
2. SỬ DỤNG DRUPAL CONSOLE
Chỉ cần gõ lệnh sau:
drupal site:mode dev
Muốn trở lại như cũ, gõ lệnh
drupal site:mode prod
Tham khảo: https://www.drupal.org/node/2598914
Bình luận