Основы

Kласс - это шаблон кода, который используется для создания объектов.

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

Свойства - специальные переменные объявленные в классе.

Методы (methods) - специальныен функции объявленные внутри класса. В отличии от свойств методы можно объявлять только в теле класса. По умолчанию, методы и свойства без объявления ключевого слова - будут public.

$this - псевдопеременная предоставляющая механизм обращения к экземпляру объекта.

-> - обращение к методу/свойству в контексте объекта

:: - обращение методу/свойству в контексте класса

parent - псевдопеременная для обращения к родительскому классу, модно использовать в любом методе который переопределяет свой эквивалент в родительском классе.

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

Управление доступом к классам:

  • public - общедоступный, доступ из любого контекста
  • private - только из класса в котором объявлены.
  • protected - из класса в котором объявлены либо из потомков
  • Изначально стоит делать свойства private или protected - а затем ослаблять ограничения по мере необходимости. Это способствует написанию более качесвенного и защищённого кода.

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

self - псевдопеременная предоставляющая доступ к текущему классу.

Абстрактный класс - abctract, класс экземпляр которого нельзя создать. В нём определяется абстрактный метод(ы), которые которые будут реализованы в классах потомках. Это гарантирует что все классы потомки будут иметь свою реализацию абстрактного метода.

Интерфейс - interface, шаблон с помощью которого определяется функциональность без реализации.