Перейти к основному содержимому

Объектно-ориентированное программирование (ООП) в PHP

ООП — это сокращение от «объектно-ориентированное программирование». Это способ построить программу на PHP вокруг классов и объектов. У каждого из них есть собственные данные, называемые свойствами, и собственное поведение, называемое методами.

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

Процедурный код, традиционная альтернатива, — это список шагов, которые PHP выполняет один за другим. С ООП ваша задача меняется: вы проектируете классы и объекты, а затем решаете, как они будут работать вместе.


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

Почему стоит выбрать ООП, а не процедурный код? У него три главных преимущества:

  • Ваша программа получает ясную, чётко определённую структуру
  • Общая логика находится в одном месте, согласно идее DRY («Don't Repeat Yourself»), поэтому поддержка, изменение и отладка кода требуют меньше усилий
  • Вы можете создавать полностью повторно используемые приложения, написав меньше кода и потратив меньше времени на разработку

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


Понятия ООП

ООП в PHP опирается на несколько идей, благодаря которым код остаётся модульным, повторно используемым и простым в поддержке:

  • Классы и объекты — класс является шаблоном, а каждый объект — это отдельный экземпляр, созданный на его основе
  • Инкапсуляция — модификаторы доступа (public, protected, private) позволяют разработчикам решать, кому доступно внутреннее состояние объекта
  • Наследование — новый класс может перенять свойства и методы уже существующего класса
  • Абстракция — абстрактный класс служит образцом для других классов, и его экземпляр нельзя создать сам по себе
  • Интерфейсы — интерфейс перечисляет методы, которые обязан предоставить любой реализующий его класс

Что такое классы и объекты?

Объектно-ориентированное программирование держится на двух основных идеях: классах и объектах.

Представьте класс как шаблон. Объект — это отдельный экземпляр, созданный по этому шаблону.

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