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

Як використовувати плагіни WordPress із автозавантаженням PSR-4

7

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

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

Крім того, усі вони побудовані на одній основі, але також мають спільний код один з одним, і щоб зробити речі цікавішими, ви вирішили використовувати автозавантажувач PSR-4 через Composer, щоб подбати про все це?

Плагіни WordPress із автозавантаженням PSR-4

По-перше, те, що я намагаюся сказати (тому хто знає, чи зрозуміло я 🙃), полягає в тому, що ваша робота є в wp-content/pluginsкаталозі. І ваш плагін знаходиться, скажімо, acme-pluginsі має підкаталоги для ваших мікроплагінів.

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

Як використовувати плагіни WordPress із автозавантаженням PSR-4

Ось файли, які ви очікуєте побачити в плагіні:

  • README,
  • ЛІЦЕНЗІЯ,
  • ЖУРНАЛ ЗМІН,
  • composer.json
  • composer.lock
  • постачальник
  • файл завантаження плагіна,
  • тощо

Ось що: якщо ви використовуєте PSR-2 і збираєтеся використовувати автозавантажувач PSR-4, вам потрібно знати дві речі:

  1. Простори імен мають відповідати організації каталогу. Я трохи говорив про це під час своєї презентації на WordCamp Atlanta 2017 (зокрема, у розділі віртуальної та логічної організації).
  2. Як працювати з composer.jsonвизначенням ваших автозавантажувачів. Ви можете прочитати багато про це тут, але я наведу примітки про скелю в решті цієї публікації.

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

Наприклад, дуже типово побачити це :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "src/",
    }
  },
  // ...
}

Але щоб компенсувати нашу роботу, нам потрібно зробити ось що :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "",
      "AcmeMicroPlugin": "MicroPlugin/src/"
    }
  },
  // ...
}

Це проста зміна, але це простий приклад, чи не так? Отже, що з цього можна зробити?

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

  • Перший елемент — це простір імен верхнього рівня, до якого належатимуть усі плагіни, що належатимуть до плагіна Acme.
  • Другий запис стосується MicroPlugin, який ви бачите в каталозі, зображеному вище. Це представляє простір імен для цього конкретного плагіна та повідомляє Composer шукати вихідні файли для автоматичного завантаження за допомогою каталогу властивостей

Звідси ви додасте новий запис для автозавантажувача, який відповідає кожному мікроплагіну, який належатиме до плагіна верхнього рівня.

Організація майбутніх мікроплагінів

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

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

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

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