Засоби відлажування шаблонів

SPIP пропонує кілька вбудованних особливостей, що допомогають веб-майстрам дістати більше інформації для налагодження певного шаблону.
Доступ до ції інформаційних функцій здійснюється передачею спеціальних змінних в URL адреси сторінок.

  • Apparu en : SPIP 2.0

Модифікатори «var_mode» або «var_profile» застосовуються шляхом додання коду ?var_mode=... (наприклад: titre-de-rubrique-?var_mode=...) або &var_mode=... (наприклад: spip.php?article3&var_mode=...) в кінець URL-адреси сторінки, яка викликається.
Їх застосування буде працювати, тільки якщо ви увійшли на сайт як один з адміністраторів.

var_mode=calcul   і   var_mode=recalcul

Виклик сторінки з «var_mode=calcul» оновлює HTML код (викликає вже скомпільований код) і освіжає кеш (створює HTML-файли, які потрібно буде просто прочитати, коли відбудеться наступний виклик цієї сторінки).

Виклик сторінки з «var_mode=recalcul» відновлює код PHP (виконує нову компіляцію шаблону), а також регенерує HTML код (запускає виконання коду, який тільки що був скомпільований), а потім освіжає кеш (створює HTML файли, які будуть читатися при наступному виклику цієї сторінки).
recalcul також відновлює стислий CSS і скрипти JavaScript.
recalcul не застосовується до зображень (віньєтки / мініатюри, текстові зображення, ...).

Будь-який з цих двох викликів може бути виконаний за допомогою натискання на одну з кнопок управління, які показуються на загальнодоступній сторінці, коли ви увійшли в систему в якості адміністратора;

var_mode=calcul

перше клацання викликає «var_mode=calcul» (якщо назва цієї кнопки супроводжується зірочкою, це означає, що відображається сторінка, яку було прочитано з кешу);

var_mode=recalcul

друге клацання викликає оновлення з «var_mode=recalcul».

Увага: у вас може виникнути спокуса використовувати var_mode=recalcul для посилань усередині ваших шаблонів (наприклад, щоб примусово оновити CSS або JavaScript зміст). Це дуже погана практика, яку ви повинні уникати, оскільки це споживає значні ресурси сервера (викликає постійне повторне складання шаблону).

var_mode=inclure

Виклик сторінки з «var_mode=inclure» відображає ім’я і шлях кожного суб-компонента (inclure/include код або SPIP модель), який є на сторінці.

Це дозволяє перевірити, що саме насправді включає шаблон сторінки, чи дійсно це ті елементи, які були вказані, показуючи повний шлях до кожного включеного файлу. Це особливо важливо, якщо ви перевантажуєте (тобто замінюєте своїми) будь-які стандартні або створені плагінами моделі,

var_mode=inclure

var_profile=1

Виклик сторінки з «var_profile=1» відображає деталі всіх SQL запитів і час розрахунку, пов’язаний з кожним з них. Запити упорядковано від найбільш трудомістких до менш затратних.

Ця функція особливо корисна, щоб знайти причини, які можуть уповільнювати відображення сторінок.
Це дозволяє переглядати запити SQL, згенеровані кожним цикломв шаблоні (у тому числі будь-яких включених шаблонів або моделей), а також будь-яким з циклів запитів (позначених як «Uncompiled»), сгенерованих SPIP.

var_profile

Це покаже:

  • для кожного циклу
    • скільки разів цикл (і, отже, SQL запит) був виконаний,
    • час (у секундах), використаний циклом (тобто час, потрібний на виконання відповідного запиту, помножений на кількість виконань циклу),
    • список (в хронологічному порядку всіх запитів, що генеруються сторінкою) всіх виконаннь запитів (який забезпечує зв’язок з докладною інформацією про кожний запит).
  • uncompiled запити
  • загальний час, витрачений на всі запити на сторінці
  • деталі кожного виконання запиту з
    • статистичною таблицею, що показує план виконання запиту,
    • назвою запиту.
Увага: не забудьте обчислити сторінку з &var_profile=1&var_mode=calcul, щоб уникнути читання її з кешу, що може викликати відображення помилкових результатів.

var_mode=preview

Виклик сторінки з «var_mode=preview» з адміністративної частини використовується для перегляду статті, яку було «запропоновано для публікації», без фактичної публікації її на загальнодоступному сайті.

var_mode=preview

var_mode=urls

Виклик сторінки з «var_mode=urls» примусово оновлює всі URL-адреси на цій сторінці.

var_mode=debug

Виклик сторінки з «var_mode=debug» деталізує генерацію сторінки (SPIP цикли - SQL запити - PHP код - статистика запитів SQL).

var_mode=debug

Ця сторінка показує інформацію для головного файлу шаблону, а також для будь-яких включених файлів шаблонів:

  • список значень контекстних змінних оточення (#ENV), прийнятих {} викликає шаблонуthe list of values of the environment context variables (#ENV) passed by the calling template,
  • список циклів.

Різні посилання можуть бути використані для доступу:

  • шаблон
    текст коду шаблону (тим самим зникає необхідність мати прямий доступ до .html файлу, щоб прочитати його вміст),
    • результати
      код, сгенерований шаблоном (усі можливі включення), який одразу, як тільки evaluated, повертає HTML в браузер,
    • код
      код PHP сгенерований компілятором (аналіз, призначений здебільшого для розробників основного коду), який при виконанні, буде генерувати результати (див. вище)
    • розрахунки
      деталі SQL запитів і для кожного з них час виконання (див. вище var_profile).
  • boucle (цикл)
    текст коду всього циклу (від <B_abc> до <//B_abc>),
    • results (результати)
      SQL-запити, сгенеровані даним циклом,
      список перших результатів, які повертаються цим запитом [1],
    • code (код)
      код PHP (генерується компілятором) для конкретної функції, пов’язаної з цим циклом (аналіз в основному зарезервований для експертів - розробників основного коду),
    • calcul (розрахунки)
      деталі і час розрахунків для запиту SQL, пов’язаного з цим циклом (див. вище var_profile).

Отримання ще більшої інформації для налагодження

-  Відключіть кеш SPIP, додавши такий рядок в файл config/mes_options.php:

define('_NO_CACHE', -1);

-  Активуйте PHP повідомлення про помилки, додавши цей код в config/mes_options.php:

error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT', E_ALL^E_NOTICE);
define('SPIP_ERREUR_REPORT_INCLUDE_PLUGINS', E_ALL^E_NOTICE);

Примітки

[1можна змінити кількість відображуваних тут результатів, вставивши наступний рядок, що змінює параметр за замовчуванням, в файлі mes_options.php в config/ директорії: define('_MAX_DEBUG_AFF', 'n');
(за замовчуванням, аби уникнути відображення сотень результатів з циклів, які можуть бути занадто загальними, значення «n» для цієї глобальної константи встановлено рівним 50).

Галерея фотографій і документів

Також дивіться:

Автор olly Publié le : Mis à jour : 04/11/24

Traductions : عربي, English, français, Nederlands, українська