- 17) Объектно-ориентированное программирование
- Принципы объектно-ориентированного программирования
- Концепции ООП в PHP
- Что такое UML?
- Как создать класс в PHP
- Как реализовать наследование в PHP
- Как создать объект класса
- Тестирование нашего приложения
- Резюме
- Объектно-ориентированный PHP с классами и объектами
- Что такое объектно-ориентированное программирование (ООП)?
- Что такое класс PHP?
17) Объектно-ориентированное программирование
Объектно-ориентированный — это подход к разработке программного обеспечения, который моделирует приложение вокруг объектов реального мира, таких как сотрудники, автомобили, банковские счета и т. Д. Класс определяет свойства и методы объекта реального мира. Объект — это вхождение класса.
Три основных компонента ориентации объекта:
- Объектно-ориентированный анализ — функциональность системы
- Объектно-ориентированное проектирование — архитектура системы
- Объектно-ориентированное программирование — реализация приложения
Принципы объектно-ориентированного программирования
Три основных принципа ООП являются;
- Инкапсуляция — это связано с сокрытием деталей реализации и раскрытием только методов. Основное назначение инкапсуляции состоит в том, чтобы:
- Уменьшите сложность разработки программного обеспечения — за счет сокрытия деталей реализации и только разоблачения операций использование класса становится простым.
- Защита внутреннего состояния объекта — доступ к переменным класса осуществляется с помощью таких методов, как get и set, что делает класс гибким и простым в обслуживании.
- Внутренняя реализация класса может быть изменена, не беспокоясь о нарушении кода, который использует класс.
- Возможность повторного использования — количество детей может наследоваться от одного и того же родителя. Это очень полезно, когда мы должны предоставить общие функции, такие как добавление, обновление и удаление данных из базы данных.
- Упростите поддержку приложений и сделайте их более расширяемыми.
Концепции ООП в PHP
PHP является объектно-ориентированным скриптовым языком; он поддерживает все вышеперечисленные принципы. Вышеуказанные принципы достигаются с помощью;
- Инкапсуляция — с использованием методов «get», «set» и т. Д.
- Наследование — с помощью ключевого слова extends
- Полиморфизм — с помощью ключевого слова Implements
Теперь, когда у нас есть базовые знания о ООП и о том, как он поддерживается в PHP, давайте рассмотрим примеры, которые реализуют вышеуказанные принципы
Что такое UML?
Унифицированный язык моделирования UML — это методика, используемая для проектирования и документирования объектно-ориентированных систем.
UML создает множество документов, но мы рассмотрим диаграмму классов, которая очень важна для объектно-ориентированного программирования php.
Пример диаграммы классов
Ключ диаграммы классов
- Окно Верхнего содержит имя класса
- Среднее поле содержит переменные класса
- Ниже окно содержит методы класса
- Знак минус (-) означает частную область видимости
- Знак плюс (+) означает общедоступную область
- Знак хеша (#) означает защищенную область
Как создать класс в PHP
Ключевое слово class используется для определения класса в PHP. Ниже приведены правила создания класса в PHP.
- Имя класса должно начинаться с буквы
- Имя класса не может быть зарезервированным словом PHP
- Имя класса не может содержать пробелы
Допустим, мы хотим создать класс для представления животных.
Мы начнем с определения характеристик, которые являются общими для всех животных.
- Все животные принадлежат к семье, такой как травоядное животное, карнавал и т. Д.
- Все животные едят пищу
Диаграмма ниже показывает диаграмму для животного
Давайте теперь код нашего класса животных
family = $family; $this->food = $food; > public function get_family() < return $this->family; > public function set_family($family) < $this->family = $family; > public function get_food() < return $this->food; > public function set_food($food) < $this->food = $food; > > ?>
- «Private $ family, $ food» означает, что переменные не могут быть доступны непосредственно вне класса (Encapsulation).
- Public function __construct ($ family…) — это метод конструктора php. Эта функция вызывается всякий раз, когда создается экземпляр класса. В этом случае мы устанавливаем семью и еду.
- «Public function get… ()» — это метод, используемый для доступа к семейной или пищевой ценности (инкапсуляция)
- «Public function set… ()» — это метод, используемый для установки значения семьи или питания (инкапсуляция)
Как реализовать наследование в PHP
Мы будем работать с коровой и львом. И корова, и лев унаследованы от класса животных.
Диаграмма классов ниже показывает отношения.
Обратите внимание, что корова наследует от класса животных и определяет свою собственную переменную и методы тоже.
Давайте теперь кодировать класс Корова
public function set_owner($owner) < $this->owner = $owner; > public function get_owner() < return $this->owner; > > ?>
Давайте теперь кодировать класс Lion
- «Class… extends Animal» заставляет корову и льва использовать методы из класса Animal (Наследование).
Как создать объект класса
Для простоты все классы Animal, Cow и Lion должны находиться в одном каталоге.
Давайте теперь создадим приложение, которое использует наши классы.
Cow Object
'; echo 'The Cow belongs to the ' . $cow->get_family() . ' family and eats ' . $cow->get_food() . '
'; echo 'Lion Object
'; echo 'The Lion belongs to the ' . $lion->get_family() . ' family and eats ' . $lion->get_food(); ?>Тестирование нашего приложения
Давайте теперь посмотрим наше приложение в веб-браузере
Фантастическое право! Давайте теперь посмотрим на третий принцип ООП, полиморфизм.
Допустим, мы хотим разработать приложение, которое подключается к различным механизмам баз данных, таким как MySQL и SQL Server, но использует один и тот же унифицированный интерфейс.
Мы можем создать интерфейс, который определяет стандартные методы, и абстрактный класс, который реализует общие методы.
- Интерфейс — это похоже на класс. Он определяет только методы и параметры.
- Абстрактный класс — это класс, который нельзя использовать для непосредственного создания объекта. Его целью является предоставление частичной или полной реализации общих методов.
Диаграмма классов ниже иллюстрирует отношения между нашим абстрактным классом, интерфейсом и классами реализации.
Давайте теперь создадим наш абстрактный класс
host = $host; $this->db = $db; $this->uid = $uid; $this->password = $password; > > ?>
- «Абстрактный класс» означает, что класс нельзя использовать напрямую для создания объекта php
- $ Host, $ db… — это переменные класса, общие для всех реализаций
- «Function __construct (…)» — это метод конструктора класса php, который устанавливает значения общих переменных при инициализации
Давайте теперь создадим интерфейс, который содержит стандартные методы, которые будут реализованы по-разному в зависимости от механизма базы данных.
- «Интерфейс» — это ключевое слово для создания интерфейсов
- «Публичная функция… (…)» — это стандартные методы, которые должны быть реализованы
Давайте теперь создадим конкретные классы, которые будут расширять класс DBCommonMethods и расширять интерфейс DBInterface. MySQLDriver.php
public function db_connect() < //connect code goes here >public function delete($where) < //delete code goes here >public function insert($data) < //insert code goes here >public function read($where) < //read code goes here >public function update($where) < //update code goes here >> ?>
public function db_connect() < //connect code goes here >public function delete($where) < //delete code goes here >public function insert($data) < //insert code goes here >public function read($where) < //read code goes here >public function update($where) < //update code goes here >> ?>
- «Класс… расширяет DBCommonMethods» использует методы из DBCommonMethods
- «… Реализует DBInterface» гарантирует, что класс предоставляет стандартные методы независимо от используемого драйвера базы данных.
Использование приведенного выше кода Код, использующий приведенный выше класс, будет выглядеть следующим образом
Остальная часть кода будет одинаковой для обоих драйверов, таких как;
Резюме
- Объектно-ориентированное программирование ООП — это мощный технический инструмент, который моделирует приложения после объектов реального мира.
- Класс — это представление объектов реального мира со свойствами и методами.
- Три основных принципа ООП:
- Инкапсуляция
- наследование
- Полиморфизм
Объектно-ориентированный PHP с классами и объектами
Sajal Soni Last updated Dec 4, 2018
В этой статье мы исследуем основы объектно-ориентированного программирования на PHP. Начнем с введения в классы и объекты, а во второй половине статьи обсудим несколько продвинутых понятий, таких как наследование и полиморфизм.
Что такое объектно-ориентированное программирование (ООП)?
Объектно-ориентированное программирование, обычно называемое ООП — это подход, который вам помогает разрабатывать сложные приложения таким образом, чтобы они легко поддерживались и масштабировались в течение длительного времени. В мире ООП реальные понятия Person , Car или Animal рассматриваются как объекты. В объектно-ориентированном программировании вы взаимодействуете с вашим приложением, используя объекты. Это отличается от процедурного программирования, когда вы, в первую очередь, взаимодействуете с функциями и глобальными переменными.
В ООП существует понятие «class», использываемое для моделирования или сопоставления реального понятия с шаблоном данных (свойств) и функциональных возможностей (методов). «Оbject» — это экземпляр класса, и вы можете создать несколько экземпляров одного и того же класса. Например, существует один класс Person , но многие объекты person могут быть экземплярами этого класса — dan , zainab , hector и т. д.
Например, для класса Person могут быть name , age и phoneNumber . Тогда у каждого объекта person для этих свойств будут свои значения.
Вы также можете определить в классе методы, которые позволяют вам манипулировать значениями свойств объекта и выполнять операции над объектами. В качестве примера вы можете определить метод save , сохраняющий информацию об объекте в базе данных.
Что такое класс PHP?
Класс — это шаблон, который представляет реальное понятие и определяет свойства и методы данного понятия. В этом разделе мы обсудим базовую анатомию типичного класса PHP.
Лучший способ понять новые концепции — показать это на примере. Итак, давайте рассмотрим в коде класс Employee , который представляет объект служащего.