Biến kết xuất Twig Drupal 8

Là nhà phát triển Drupal, bạn thường muốn kiểm tra các biến trong các mô-đun hoặc chủ đề của mình để xem các giá trị thực tế. PHP có các hàm mặc định như var_dump[] và print_r[] sẽ in tất cả thông tin nhưng nó không trực quan và cũng không được in theo cách dễ hiểu. Trong hầu hết các trường hợp, nó in ra quá nhiều thông tin và có thể tốn thời gian để tìm biến bạn thực sự muốn bằng cách lọc qua tất cả các mảng và phương thức

Bằng cách sử dụng các mô-đun Devel và Devel Kint Extras, bạn có thể in các biến theo cách thân thiện hơn với người dùng

Hướng dẫn này sẽ hướng dẫn cách thiết lập các mô-đun này để bạn có thể in các biến trong PHP và Twig bằng Kint

Bắt đầu

Để bắt đầu, hãy tải xuống mô-đun Devil và Devel Kint Extras 

Devel Kint Extras đi kèm với thư viện kint-php nên việc cài đặt thư viện này qua Composer sẽ tự động xử lý

Chúng ta có thể cài đặt cả hai bằng Composer

composer require drupal/devel drupal/devel_kint_extras

Bây giờ chúng ta có thể kích hoạt cả devel và devel_kint_extras chỉ bằng một lệnh Drush

drush en devel_kint_extras -y

Cuối cùng, chúng ta phải kích hoạt Kint Extended dưới dạng Biến Dumper. Để làm điều này đi đến

admin/config/development/devel

và chọn Kint Extender và Lưu cấu hình như hình bên dưới

In các biến bằng Kint trong PHP

Devel đi kèm với các hàm Kint kint[] và ksm[] để bạn có thể sử dụng hàm này để in bất kỳ biến nào trong mô-đun tùy chỉnh của mình

cho e. g. Ở đây chúng tôi đã sử dụng kint[] trong mô-đun tùy chỉnh của mình

function custom_kint_preprocess_page[&$variables] {
 kint[$variables['page']];
}

Đầu ra sẽ trông như thế này

GHI CHÚ. Bạn có thể phải xóa bộ nhớ cache của trang web để xem đầu ra

Và nếu chúng ta sử dụng hàm ksm thay vì kint[] thì đầu ra sẽ như thế này

Như bạn có thể thấy, đầu ra đã được in vào vùng Tin nhắn của chủ đề. “ksm” có thể là chữ viết tắt của “kint set message”

Mở rộng và thu gọn

Sau khi bạn có một biến được in trên màn hình, bạn sẽ muốn xem chi tiết và xem có gì trong đó

Kint cho phép bạn điều hướng xung quanh theo hai cách. Đầu tiên, nếu bạn nhấp vào bất kỳ đâu trên hàng, nó sẽ chỉ mở rộng ở cấp độ tiếp theo

Nhưng nếu bạn nhấp vào biểu tượng +, nó sẽ mở rộng tất cả các mục con bên dưới

Hãy xem GIF bên dưới để xem nó hoạt động như thế nào

Xem dấu vết ngăn xếp

Kint cũng hiển thị dấu vết ngăn xếp ngay bên dưới đầu ra khi xem biến được in. Nhấp vào biểu tượng + bên dưới biến và nó sẽ mở rộng dấu vết ngăn xếp

In các biến bằng Kint trong Twig

Kint cũng có thể được sử dụng trong các mẫu Twig. Để in một biến, chỉ cần thêm{{ kint[] }} vào mẫu và chuyển một biến vào, ví dụ: {{ kint[page] }}

Để điều này hoạt động, bạn phải bật gỡ lỗi Twig. Tôi sẽ không đề cập đến nó trong hướng dẫn này, nhưng hãy đọc trang tài liệu này trên drupal. org để học cách làm

Tóm lược

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách bạn có thể sử dụng các mô-đun Devil và Devel Kint Extras để in các biến trong mô-đun tùy chỉnh [PHP] và cả trong chủ đề của bạn [Twig]

Sử dụng Kint để in các biến là một cách thân thiện hơn với người dùng để các nhà phát triển Drupal kiểm tra giá trị của các biến. Những công cụ đơn giản này có thể được sử dụng để tăng năng suất phát triển của bạn

câu hỏi thường gặp

Q. dpm[] và dsm[] đã bị xóa chưa?

Các hàm này vẫn còn nhưng chúng sẽ không in biến bằng Krumo vì nó đã bị xóa khỏi Devel trong Drupal 8

Q. Tôi đang cố in một biến trong mẫu Twig và không có gì xảy ra

Bạn phải bật gỡ lỗi Twig để hàm {{ kint[] }} hiển thị. Đọc trang này trên drupal. org để tìm hiểu cách

Q. Tôi không thể sử dụng Xdebug sao?

Có, bạn có thể và tôi khuyên bạn nên thiết lập Xdebug. Tuy nhiên, đôi khi Xdebug không khả dụng nên trong trường hợp đó, hãy sử dụng Devel và Devel Kint Extra để kiểm tra nhanh các biến

Cho dù bạn đã kế thừa một dự án Drupal 8 hay đang bắt đầu làm mới, thì việc có thể gỡ lỗi sự cố một cách dễ dàng và nhanh chóng là rất quan trọng

Điều đầu tiên tôi muốn làm sau khi bắt đầu một chủ đề cành cây mới là bật một số gỡ lỗi cơ bản. Drupal làm cho việc gỡ lỗi twig trở nên dễ dàng vì nó cung cấp cho bạn danh sách các mẫu tiềm năng và mẫu nào hiện đang được sử dụng. Nếu bạn chưa bao giờ chạm vào chủ đề Drupal trước đây, điều này sẽ cung cấp thông tin chi tiết tuyệt vời về quy ước đặt tên và phân cấp mẫu. Các nhà phát triển cấp độ mới bắt đầu sẽ đặc biệt đánh giá cao điều này

Trước tiên, bạn sẽ cần điều hướng đến thư mục trang web/mặc định. Bên trong thư mục đó, bạn sẽ nhận thấy một mặc định. dịch vụ. tập tin yml. Sao chép tệp này và đổi tên tệp mới là local. dịch vụ. yml. Sau đó, bạn sẽ cần thực hiện một số thay đổi đối với phiên bản mới. tệp yml bạn vừa tạo. Tìm phần dành cho “cành cây. cấu hình. ”. Trong phần đó, đặt gỡ lỗi thành đúng, tự động tải lại thành đúng và bộ đệm thành sai. Cấu hình đó yêu cầu Drupal hiển thị thông tin gỡ lỗi khi chúng tôi sử dụng các công cụ dành cho nhà phát triển trong Chrome hoặc Firefox và cũng yêu cầu Drupal không lưu các mẫu twig vào bộ đệm. Nếu bạn cam kết các tệp này với git để sử dụng trên một trang web trực tiếp, thì tốt nhất bạn nên thêm tệp cục bộ. dịch vụ. yml để gitignore. Thông tin này hoàn toàn dành cho mục đích phát triển

Bây giờ, sau khi xóa bộ đệm, nếu chúng tôi kiểm tra một trang bằng các công cụ dành cho nhà phát triển [trong Chrome hoặc Firefox], chúng tôi sẽ có thể xem mã nhận xét với mẫu được sử dụng cho phần/khối/trường đó, cùng với các đề xuất cho . Mục trên cùng là mẫu cụ thể nhất, với các tùy chọn sẽ mở rộng hơn khi bạn đi xuống danh sách.  

Hình ảnh

Điều quan trọng cần biết là Drupal sử dụng một số biến trên bất kỳ nút nào. Các biến khả dụng sẽ khác nhau tùy thuộc vào việc đó là một trang hay một nút hay một đoạn văn. Sau khi bật gỡ lỗi cành cây, bạn sẽ có quyền truy cập vào chức năng kết xuất. {{dump[] }} [https. //www. drupal. org/docs/8/theming/twig/Discovery-and-inspecting-variables-in-twig-templates]

Chạy chức năng đó sẽ kết xuất mọi biến có sẵn [và nội dung của nó] trên trang, nhưng nhiều khả năng nó sẽ làm hỏng trang sau khi sử dụng hết bộ nhớ. Thay vào đó, hãy sử dụng mã bên dưới để lặp qua các tùy chọn ngữ cảnh

{% for key, value in _context %}
  
  • {{ key }}
  • {% endfor %}

    Một tài nguyên tuyệt vời khác dành cho các nhà phát triển Drupal là một mô-đun có tên là Devel [https. //www. drupal. tổ chức/dự án/phát triển]. Devel có thể nhanh chóng tạo nội dung giả [các nút, nhận xét, người dùng, thuật ngữ, v.v.], thêm một số chức năng để sử dụng trong các tệp mẫu, hiển thị các biến có sẵn trên trang, v.v. Để biết mức độ đầy đủ, hãy xem tài liệu [https. //www. drupal. org/docs/8/modules/devel]

    Làm cách nào để in biến trong Drupal 8?

    Cách in các biến bằng cách sử dụng Devel và Kint trong Drupal .
    Bắt đầu. Để bắt đầu, hãy tải xuống mô-đun Devil and Devel Kint Extras. .
    In các biến bằng Kint trong PHP. .
    Mở rộng và thu gọn. .
    Xem dấu vết ngăn xếp. .
    In các biến bằng Kint trong Twig

    Làm cách nào để ghi đè mẫu Twig trong Drupal 8?

    Ghi đè mẫu .
    Định vị mẫu bạn muốn ghi đè
    Sao chép tệp mẫu từ vị trí cốt lõi của nó vào thư mục chủ đề của bạn
    Đổi tên mẫu theo quy ước đặt tên để nhắm mục tiêu một tập hợp con cụ thể hơn của các khu vực nơi mẫu được sử dụng
    Sửa đổi mẫu theo ý muốn của bạn

    Gỡ lỗi Twig là gì?

    Twig là một khung mẫu linh hoạt, nhanh chóng và an toàn hoặc công cụ hiện đại của PHP được tích hợp bởi Drupal 8. Gỡ lỗi Chủ đề Twig giúp các nhà phát triển phát triển các mẫu mới và thao tác các mẫu hiện có một cách hiệu quả .

    Mẫu Twig trong Drupal 8 là gì?

    Twig là một công cụ tạo khuôn mẫu PHP và là công cụ tạo khuôn mẫu mặc định cho Drupal 8. Một phần của Symfony Framework, cú pháp Twig biên dịch các mẫu thành PHP thuần túy khi được hiển thị trong trình duyệt

    Chủ Đề