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

Використання шаблону реєстру в WordPress

5

Я мав кілька бесід з різними друзями та іншими в Twitter про поняття глобальних змінних у мовах програмування. Для тих, хто новачок у програмуванні або хто не впевнений, чому вони погані:

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

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

Тобто існують способи роботи з передачею даних навколо вашої програми без необхідності використання глобальних змінних. І одним із таких способів є шаблон реєстру.

Шаблон реєстру в WordPress

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

Але навіщо використовувати це?

Використання шаблону реєстру в WordPress

Фото Семюеля Зеллера на Unsplash

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

Реалізація шаблону

З огляду на це, як ми можемо реалізувати шаблон реєстру в WordPress, а потім використовувати його в нашій роботі? Давайте спочатку розглянемо основну структуру візерунка :

Зауважте, що його реалізація досить проста:

  1. Клас містить єдиний масив як приватну властивість.
  2. Дані додаються до масиву з певним ідентифікатором.
  3. Дані можна отримати з шаблону з ідентифікатором.

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

Але це входить у більш складну реалізацію, яку я хотів би для цієї публікації.

Налаштування реєстру

Через характер системи підключення WordPress існує певний спосіб налаштування реєстру, а потім його реєстрації в WordPress.

Припустимо, ви працюєте з плагіном. У файлі початкового завантаження плагіна виконайте щось на зразок цього:

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

Використання реєстру

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

Звідти ви можете отримати об’єкти, які ви зберегли в реєстрі:

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

Кілька слів про тестованість

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

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

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

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