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

Навіщо автозавантаження в WordPress, частина 3

14

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

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

Але для цього потрібен певний тип програми.

Автозавантаження в WordPress: компонувальники та автозавантажувачі

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

Що таке Linker?

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

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

Потім у всій кодовій базі ви маєте всі ці файли, які пов’язані через простори імен, але розподілені по окремих файлах.

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

А автозавантаження?

Тож у чому схожість між автозавантаженням і зв’язуванням? Як згадувалося, проекти, які ми створюємо на WordPress (і PHP), постійно зберігаються в окремих файлах. Тобто вони ніколи не будуть скомпільовані в один файл.

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

Навіщо автозавантаження в WordPress, частина 3

Написання автозавантажувача вручну (без використання PSR4).

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

Аналогія

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

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

Це воно

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

Коротко:

  • скомпільовані мови використовують компонувальники,
  • динамічні мови використовують автозавантажувачі.

І це все, насправді.

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

І якщо нічого іншого, це може допомогти нам стати кращими розробниками.

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

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