✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Віджети WordPress: рефакторинг, частина 5

15

У попередній публікації ми створили реєстр, який використовуватиметься для зберігання всіх різних класів, відповідальних за надання функціональності нашому віджету.

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

Зокрема, тут ми зупинилися:

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

Тож у цій публікації ми зосередимося на цьому.

Шаблон віджета WordPress: рефакторинг, частина 5

Якщо ви стежили за серіалом до цього моменту, тоді ви повинні бути в хорошому становищі для додавання реєстру, щоб ми мали доступ до нього в плагіні.

Однак для цього необхідно припустити, що ви знаєте, як визначити свої фільтри. У WordPress ми постійно використовуємо дії та фільтри.

Справа в тому, що ці гачки вже визначені. Отже, як ми визначаємо наш фільтр?

Давайте розглянемо, як це зробити.

1 Визначення нашого фільтра

Спочатку нам потрібно зрозуміти кілька понять:

  • що таке фільтр,
  • як додати фільтр,
  • як ввести наш реєстр у фільтр
  • як отримати клас із фільтра.

На щастя, все вищесказане легко пояснити.

Що таке фільтр?

Простіше кажучи, хуки дозволяють нам викликати WordPress у певний час під час виконання програми. Дії зазвичай зарезервовані за поведінкою; Фільтри зарезервовані для даних.

Крім того, фільтри дозволяють нам працювати з конкретними даними в додатку – це можуть бути вже існуючі дані або навіть нові дані. У нашому випадку це буде клас Registry, який містить посилання на інші дані.

Додавання фільтра

Додати фільтр легко. Він складається з трьох частин:

  1. виклик add_filter ,
  2. визначення унікального ідентифікатора для фільтра,
  3. передача інформації у фільтр, яку можна повернути під час кожного виклику.

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

Віджети WordPress: рефакторинг, частина 5

У будь-якому випадку додавання фільтра виконує просте завдання:

Підключіть функцію або метод до певної дії фільтра.

Отже, це означає, що нам потрібно визначити метод із нашим ідентифікатором. Через особливості PHP нам не потрібно використовувати окрему функцію.

Віджети WordPress: рефакторинг, частина 5

Замість цього ми можемо використовувати анонімну функцію.

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

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

Передача інформації нашому фільтру

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

Тож у головний файл плагіна, який є файлом wordpress-widget-boilerplate.php, ми додаємо такі рядки коду :

<?php

namespace WordPressWidgetBoilerplate;

use WordPressWidgetBoilerplateUtilitiesRegistry;

// More to come...

Вище зазначено простір імен, у якому знаходиться реєстр. Потім ми додаємо наступний блок коду під автозавантажувачем:

<?php

// Setup a filter so we can retrieve the registry throughout the plugin.
$registry = new Registry();
add_filter('wpWidgetRegistry', function() use ($registry) {
    return $registry;
});

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

2 Отримання нашого реєстру

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

Наприклад, припустимо, що ми в іншому класі і нам потрібно отримати посилання на реєстр. Для цього ми можемо зробити цей виклик :

<?php

// Retrieve the registry anywhere in the plugin.
$registry = apply_filters('wpWidgetRegistry', null);

І це все. Легко, правда? За умови, що все було належним чином додано до реєстру – про що буде розказано найближчим часом – тоді ми зможемо отримати доступ до всіх за допомогою унікальних ідентифікаторів, які ми використовували в попередній публікації.

Автозавантажувач

Тепер ми починаємо використовувати простори імен і використовувати інші класи. Це означає, що нам потрібно буде використовувати автозавантажувачі.

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

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі