Что такое объектно-ориентированное программирование на PHP?

Что такое объектно-ориентированное программирование на PHP?

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

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

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

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

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

Поэтому для начала, давайте рассмотрим предыдущий пример, но написанный на ООП.

Функционал текущего кода абсолютно аналогичен, то есть все так же на экран отображается строка “Hello World”, разница только в подходе к реализации поставленной задачи.

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

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

Проблема процедурного подхода заключается в том, что программист не “думает” реальными объектами или же ситуациями – он просто прописывает код, исходя из логики работы приложения. Объектно-ориентированный подход, используя классы и их объекты, позволяет сместить приоритеты в процессе написания кода от функциональности скрипта к структурам данных. Что в итоге приводит к моделированию в создаваемых приложениях реальных объектов и ситуаций.

Преимущества ООП на PHP.

Относительно прост для понимания, так как позволяет мыслить в рамках тех реальных объектов, для которых пишется приложение.

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

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

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

Теперь давайте более подробно поговорим о классах и объектах, так как это основа всего ООП.

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

К примеру, чертеж автомобиля. Согласитесь, что для создания автомобиля, для начала необходимо его изобразить на чертеже и определить его основные свойства и функционал: цвет, количество мест, тип двигателя, показатели движения и т.д. Причем замете, чертеж может существовать, а, значит, и класс, но реального автомобиля может и не быть. В свою очередь реальный, созданный по чертежу, то есть по ранее определенному проекту (классу) автомобиль – это ничто иное как объект. Данные которые определены в объекте, отвечают характеристикам и функционалу конкретного созданного автомобиля — опять же цвет, двигатель, комплектация и т.д.

Таким образом, классы формируют некую структуру данных, которая будет использована для создания объекта, который как раз и будет выполнять поставленные задачи. В примере с автомобилем — что то перевозить и т.д.

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

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

Теперь Вы знаете, что значит объектно-ориентированный язык php. Вот собственно и все о чем я хотел поговорить в данном уроке. А значит давайте прощаться. Всего Вам доброго и удачного кодирования!

Метки:

Похожие статьи:

Комментарии Вконтакте: