После парадигмы процедурного программирования было изобретено объектно-ориентированное программирование. Переменные называются свойствами, а функции называются методами. Каждый раз, когда вы объявляете класс, вызывается метод __construct():

Мы рассмотрим:

  • Четыре основополагающих понятия: наследование, полиморфизм, абстракция и инкапсуляция;
  • Определения свойств и методов: const и static;
  • Отношения классов: ассоциация, агрегация и композиция;
  • Перехватчики: __set(), get() и __call();
  • Автозагрузка классов в PHP5+ с помощью __autoload();
  • Обработка ошибок с помощью: trigger_error(), set_error_handler(), throw New Exception('') и try {} catch ( ) {Исключение $e}.

Четыре основополагающие концепции

В ООП у нас есть четыре основополагающих концепции:

Наследование: у нас могут быть родительские и дочерние классы.

Полиморфизм: методы родителя могут быть переопределены потомком.

Абстракция: abstract не может быть создана, а final не может быть расширена.

Инкапсуляция: речь идет об общедоступных, защищенных и частных концепциях. Я уже писал об этом статью: https://medium.com/@cesarkohl/public-protected-and-private-properties-in-oop-de03166d23cf

Постоянный и статический

Постоянная

Во-первых, давайте определим, что такое константа: это противоположность переменной; что-то, что сохраняет свое значение до конца скрипта.

В приведенном выше примере мы объявили const pi. Чтобы получить значение константы, мы должны установить внутри класса директиву self::pi. Посмотрите на Number-›getPi().

Нет смысла объявлять функцию константой.

Установите self:: для получения констант класса и parent:: для получения констант родительского класса.

Статический

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

Ассоциация, агрегация и композиция

В ООП обычно классы связаны друг с другом. Эти отношения могут быть 3-х типов:

Ассоциация

Вино должно быть из винного дома. Это объект, внутри которого должен быть другой объект.

Есть 2 объявления классов, и одно содержит другое.

Агрегация

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

Существует как минимум 2 объявления классов, и ни одно из них не содержит другого.

Сочинение

Вино изготавливает сомелье. Сомелье может изменить состав вина. Родитель отвечает за создание/уничтожение своих частей.

Есть 1 объявление класса, а другой класс уже объявлен внутри класса.

Перехватчики

Здесь я объясню больше о __set(), __get() и __call().

__набор()

Когда свойство является закрытым или защищенным, и вы устанавливаете для него значение, будет вызван метод __set().

__получить()

Когда свойство является закрытым или защищенным, и вы вызываете для получения его значения, будет вызван метод __get().

__вызов()

Когда вызывается несуществующий метод, будет вызван метод __call().

Автозагрузка

Начиная с PHP 5, вы можете загружать классы более эффективно, чем:

Новый способ вызова метода __autoload:

И когда вам нужно вызвать библиотеки, вы можете вызвать Composer. Я написал об этом статью: https://medium.com/@cesarkohl/composer-basics-what-is-it-and-how-to-use-it-b20306aa8650

Работа с ошибками (по крайней мере, в PHP)

Лучший способ справиться с ошибками — использовать следующие методы:

  • триггер_ошибка()
  • set_error_handler()
  • бросить новое исключение
  • попробуйте {} поймать () {Исключение $e}

Взгляните на документацию PHP, чтобы узнать больше об этом.

Вот суть статьи: https://gist.github.com/cesarkohl/1b971f1c6c10f1c86e76cca10c52bd24

И это конец обзора ООП. Надеюсь, вам понравилось!