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

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

Объектно ориентированное программирование базируется на трех принципах:

  • инкапсуляция
  • наследование
  • абстракция
  • полиморфизм

Инкапсуляция — объединение полей и методов в классе, с целью закрыть прямой доступ к полям и открыть его для методов, которые этими полями управляют.Согласно инкапсуляции, доступ к полям рекомендуется закрывать используя соответствующие спецификаторы доступа. Чтобы предоставить возможность вносить изменения или получать значения полей,  создаются специальные  методы.Метод, возвращающий значение поля, называется геттер (от английского get — «получать»).Метод, устанавливающий значение поля, называется сеттер (от английского set — «устанавливать»). Методы SET должны проверять правильность заносимых значений в поля и если значение не правильно, то корректировать его или генерировать ошибку. Например, в минуте не может быть более 60 секунд и так далее.

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

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

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

Информация взята из ресурса: https://razrab.info/principy-oop-php/