Статьи

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

За последние 12 постов мы рассмотрели основы PHP, основы объектно-ориентированного программирования, как это сделать в контексте WordPress, и мы даже рассмотрели начало более промежуточных концепций, таких как как наследство.

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

С учетом сказанного давайте рассмотрим все, что мы рассмотрели в этой статье. Мы добавим ссылки на оригинальную статью, краткие описания и другую соответствующую информацию.

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

Возможно, самым важным выводом из этой статьи было понимание «с чего начать?» Это вопрос, который задают многие люди, когда начинают заниматься программированием.

На это мы сказали:

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

Мы все были там в какой-то момент, верно? Мы посмотрели на код, попытались выяснить поток управления и однажды спросили: «С чего мне вообще начать?»

И цель этой серии — ответить на этот вопрос.

И это именно то, что мы стремились сделать со следующими пунктами, которые были рассмотрены каждый в своей статье.

Целью этого поста было определение основы объектно-ориентированного программирования — классов. Во-первых, мы упоминали, что классы обычно определяются следующим образом:

Класс — это план создания объекта.

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

Поэтому вместо этого мы говорили о классе с точки зрения того, какие характеристики он определяет:

Итак, давайте обобщим эту идею на объекты. На самом деле, давайте заменим одно слово другим:

Существительное — это объект.

Прилагательное и атрибут (или свойство).

Глагол — это метод (или функция).

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

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

В этой статье мы говорили о двух типах, которые существуют в WordPress:

  1. Простые типы
  2. Сложные типы

И тогда мы определили каждое из вышеперечисленного как таковое:

Простые типы данных определены как таковые, потому что данные, которые они представляют, просты . То есть, как правило, он попадает под знамя истинного, ложного, десятичного разделителя, а также слов и / или предложений.

И тогда мы сказали:

Два основных сложных типа данных, на которых мы собираемся сосредоточиться в этой серии как массивы и объекты. Есть и другие, но они выходят за рамки этой серии, так что если вы заинтересованы, то не стесняйтесь взглянуть на руководство по PHP , но я предупреждаю вас: если вы абсолютный новичок, контент может чувствовать немного подавляющим

Короче говоря, примеры вышеупомянутого могут быть проиллюстрированы как:

  • булевы
  • целые
  • числа с плавающей точкой
  • строки
  • массивы
  • объекты
  • …и более

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

В первой статье серии Control Structures мы говорили об условных выражениях .

Во-первых, напомним, что:

«Управляющие структуры» — это причудливый термин, который описывает, как мы можем, хм, контролировать, как код протекает через нашу программу, основываясь на ряде факторов.

Две структуры управления, о которых мы говорили, — if/then операторы if/then операторы switch/case , затем мы рассмотрели примеры каждой из них. Кроме того, мы использовали их в некотором коде, который мы написали в нашем плагине или в нашем примере наследования.

В этой же серии мы говорили о петлях . Помнить:

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

Список циклов, на которые мы смотрели, включал:

  • for
  • foreach
  • do
  • while

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

Рассмотрев некоторые основополагающие аспекты разработки PHP, мы перешли к рассмотрению функций — которые все еще можно использовать в процедурном программировании — и атрибутов, уникальных для объектно-ориентированного программирования.

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

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

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

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

Дело в атрибутах:

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

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

Оттуда мы начали говорить о масштабах .

Короче говоря, область действия относится к тому, как переменные и функции могут быть доступны из сторонних объектов или дочерних объектов в программе.

В этой статье мы даже рассмотрели диаграмму высокого уровня, а также некоторый исходный код, который продемонстрировал это.

Вынос ключа; тем не менее, эта сфера может быть трех разных видов:

  1. public который доступен самому классу и всем сторонним классам
  2. protected который доступен для самого класса и всех подклассов
  3. private который доступен только для класса, в котором он определен

Это стало еще яснее, когда мы начали создавать наш плагин, используя то, что мы узнали.

В серии « Построение плагина » мы сначала говорили о том, что именно мы собираемся построить, а затем начали реализовывать плагин.

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

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

Фактически мы сделали плагин доступным для скачивания на GitHub .

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

В этой серии статей мы сначала поговорили о стандартах PSR, а также о стандартах кодирования WordPress и начали документировать основы нашего плагина.

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

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

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

В первой статье мы рассмотрели некоторые основные принципы, а также то, как они используются в приложении WordPress, особенно при использовании виджетов.

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

Очевидно, что мы охватили много контента в этой серии. Надеемся, что те из вас, кто только начинает работать с WordPress и объектно-ориентированным программированием в целом, сочли его полезным.

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

Что касается любой будущей серии, дайте мне знать, и мы посмотрим, что мы можем сделать.

Кроме того, удачи вам в WordPress, объектно-ориентированном программировании и так далее. Я не могу дождаться, чтобы увидеть, что вы придумали!