WordPress и объектно-ориентированное программирование — обзор

Опубликовано: 2021-04-20

Если вы разработчик WordPress, скорее всего, вы пишете свой код процедурным способом. Вы устанавливаете несколько простых упорядоченных шагов и следуете им, чтобы добиться желаемого результата и решить проблему. Простой пример — цикл WordPress, подобный показанному ниже:

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

В цикле вы сначала проверяете, есть ли у вас сообщения, соответствующие текущему запросу, и если да, вы начинаете перебирать сообщения с помощью цикла while. То же самое касается каждой пользовательской функции, которую вы будете вставлять в файл functions.php .

В этой статье мы отойдем от процедурного программирования и рассмотрим стиль программирования, называемый объектно-ориентированным программированием (ООП). Мы рассмотрим, чем он отличается от того, что вы использовали до сих пор в качестве стиля программирования, и рассмотрим некоторые из его преимуществ. Но самое главное, мы объясним, как объектно-ориентированные концепции работают в среде WordPress и взаимосвязь между ними.

Прежде чем мы углубимся в это, мы хотели бы установить, что важно, чтобы вы узнали о роли объектно-ориентированного программирования и о том, когда его можно использовать. Изучение того, как создать объектно-ориентированный плагин или тему, может подойти для вашего проекта, но важно, чтобы вы понимали, когда это так. Надеемся, что эта статья поможет вам понять, когда и почему определенный проект может быть подходящим для написания в объектно-ориентированном коде.

Проблема

Сам WordPress уже подтолкнул вас к процессуальному мышлению. И хотя WordPress постоянно использует объекты PHP, из этого не следует, что сам WordPress является объектно-ориентированным. Это распространенное неправильное толкование того, что такое ООП, и причина, по которой многие люди считают WordPress объектно-ориентированным, хотя это не так.

Важно уточнить, что мы не говорим, что вы должны воздерживаться от использования процедурного программирования, но это правда, что в этом стиле кодирования есть ограничения. Например, при настройке темы или плагина вполне вероятно, что вы добьетесь желаемого вывода HTML, написав код процедурным способом. Но как насчет масштабируемости и будущего обслуживания?

При создании пользовательского плагина очень важно подвести итоги и оценить, насколько он будет масштабируемым. Например, вы, вероятно, захотите расширить свой плагин, добавляя дополнительные функции по мере его развития. Именно в этот момент у вас начнутся трудности с организацией кода при процедурном программировании.

Но даже если вы не программируете плагины, с процедурным программированием вы всегда рискуете достичь точки, когда вы уже не уверены, как все сочетается друг с другом. В результате каждое небольшое изменение, которое вы вносите, может иметь непредвиденные последствия.

Объектно-ориентированное программирование используется для решения более сложных задач. У него может быть та же цель, что и у процедурного программирования, но во многих случаях он предлагает более совершенный способ работы. Это позволяет вам создавать смелые решения проблемы, которые можно повторно использовать, организовать и безопасно.

Как объектно-ориентированное программирование решает проблемы

В объектно-ориентированном программировании есть две важные концепции: классы и объекты .

Классы — это, по сути, шаблон, используемый для создания объектов. Каждый объект имеет свои собственные методы и набор свойств, и значение этих свойств может различаться.

Поэтому, прежде чем двигаться дальше, очень важно убедиться, что мы понимаем, что такое объект. В качестве примера разберем простое предложение:

«Я ем зеленые яблоки».

Яблоко — это объект, зеленый — это цвет объекта (свойство объекта), а глагол «есть» — это метод (функция).

Класс определяет свойства и поведение всех объектов, которые его используют. Решение проблем с ООП достигается путем правильного объединения этих программных «кирпичиков».

Перед тем, как погрузиться в работу, важно уделить некоторое время разработке предлагаемого решения. По сути, что вам нужно сделать, это:

  1. Определите проблему и то, что плагин должен сделать для ее решения
  2. Описывать классы и их отношения, а также взаимодействие между объектами
  3. Превратите все в код
  4. Просмотрите и протестируйте проект

Пока вы находитесь на этом шаге, имейте в виду, что вам повезет, если вы сделаете это идеально с первой попытки! Вам нужно будет начать сначала, пока вы не получите правильную концепцию, которая решит проблему. Рассматривайте это как часть творческого процесса, который предложит вам набор инструментов, которые вы впоследствии сможете использовать в команде без конфликтов.

В следующей статье, посвященной ООП, мы продемонстрируем простой пример, который воплотит в жизнь всю вышеизложенную теорию.

Особенности объектно-ориентированного программирования

Прежде чем мы перейдем к особенностям объектно-ориентированного программирования, давайте посмотрим, сможем ли мы дополнительно прояснить, как оно работает, с помощью простой метафоры.

Допустим, у нас есть бойлер, который мы используем для кипячения воды. Когда мы используем машину, мы делаем это определенным образом, единственным способом, который позволяет нам производитель. Мы не можем изменить то, как работает котел, когда мы нажимаем кнопку «Вкл.», Да и, честно говоря, мы бы и не хотели и не нуждались в этом. Это дает нам два очень важных преимущества.

Во-первых, ограниченная функциональность (например, возможность вскипятить воду) делает систему более надежной и безопасной. Ограниченный набор функций и наличие только кнопки «Вкл./Выкл.» означают, что мы, как пользователь, не можем приблизиться к механизму котла. По умолчанию это означает, что меньше ошибок и система в целом более надежна. Простота операции также делает ее более удобной для пользователя, и практически любой может ее использовать.

Разместите свой сайт с Pressidium

60- ДНЕВНАЯ ГАРАНТИЯ ВОЗВРАТА ДЕНЕГ

ПОСМОТРЕТЬ НАШИ ПЛАНЫ

Имея это в виду, давайте посмотрим, как это относится к объектно-ориентированному программированию. Теоретически у ООП есть три ценных характеристики: инкапсуляция, наследование и полиморфизм .

Что делает инкапсуляция , так это группирует данные и поведение внутри одного объекта. Внутри класса вы можете определить, как он будет использоваться (кнопка котла) и контролировать видимость, используя общедоступную, защищенную или частную маркировку для классов. Это также делает ее очень безопасной системой, поскольку дает вам возможность контролировать, кто имеет доступ. Это также означает, что его легче поддерживать, а также использовать.

Наследование помогает вам повторно использовать код между вашими классами. Одним из таких примеров является случай, когда класс расширяет другой класс. Возможно, вы использовали это при расширении класса Walker для изменения вывода HTML древовидных данных, таких как меню или структура комментариев. Понимание отношений между вашими классами позволит вам создавать многоразовый объектно-ориентированный код.

Наконец, полиморфизм заставляет все эти отношения работать вместе, определяет, что общего у ваших классов, как повторно использовать эти общие элементы и связаны ли они с чем-либо еще.

Вывод

Без некоторых конкретных примеров, вероятно, все вышеперечисленное все еще немного сбивает с толку. Тем не менее, важно изложить теорию, лежащую в основе объектно-ориентированного программирования, и в будущих статьях мы продолжим это с некоторыми полезными примерами, чтобы вы могли увидеть, как использовать этот захватывающий метод программирования в реальном мире.

Наша цель состоит в том, чтобы, завершив чтение нашей серии статей об ООП, вы были уверены, что сможете использовать этот метод программирования в самых разных ситуациях. Тем временем вы, возможно, захотите продолжить чтение об ООП в Википедии.

Нажмите здесь, чтобы прочитать часть 2 в нашей серии объектно-ориентированного программирования