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

Уникнення class_exists в об’єктно-орієнтованому коді WordPress

7

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

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

Уникнення class_exists

Ви можете переглянути всі вимоги для різних версій WordPress на цій сторінці, тож якщо ви працюєте із застарілими версіями WordPress, то вся перевірка class_exists може того варти.

І все ж є важливе зауваження :

Примітка: якщо ви перебуваєте в застарілому середовищі, де у вас є лише старіші версії PHP або MySQL, WordPress також працює з PHP 5.2.4+ і MySQL 5.0+, але ці версії досягли офіційного завершення терміну служби, і тому ваш сайт може стати жертвою уразливості системи безпеки.

Але для більшості з нас сучасні хостингові середовища підтримують принаймні PHP 5.3.0, якщо не вище, і через це нам не потрібно використовувати class_exists.

Тим не менш, нерідко можна побачити щось подібне :

Або так :

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

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

Але чим більше коду ви пишете і чим більше коду читаєте, тим більше ви дізнаєтесь, чи не так? Це частина всієї причини для просторів імен і автозавантаження.

Отже, як буде написаний код вище?

Можливо так :

Тим не менш, у деяких виникає запитання: як простори імен допомагають замість використання class_exists?

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

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

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

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

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