BY Mogilev, Shmidta 6, 212027
+375445544244
ПОДЕЛИСЬ ЭТИМ
09 апреля 2022, 19:57    Администратор по умолчанию 0    0 0
09-04-2022 23:09:00 90 Comments ollserg & MaxWeb for you

Пособие по концепции ООП в PHP

 

Что такое ООП?

 Начало в статье Структура и синтаксис PHP - кратко

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

Три основных компонента объектной ориентации:

  • Объектно-ориентированный анализ – функциональность системы
  • Объектно-ориентированное проектирование – архитектура системы
  • Объектно-ориентированное программирование – реализация приложения

Принципы объектно-ориентированного программирования

Три основных принципа ООП:

  • Инкапсуляция — это связано с сокрытием деталей реализации и раскрытием только методов.Основная цель инкапсуляции состоит в том, чтобы;
  • Уменьшите сложность разработки программного обеспечения — скрывая детали реализации и показывая только операции, использование класса становится проще.
  • Защитите внутреннее состояние объекта — доступ к переменным класса осуществляется с помощью таких методов, как get и set, что делает класс гибким и простым в обслуживании.
  • Внутреннюю реализацию класса можно изменить, не беспокоясь о нарушении кода, использующего класс.
  • Наследование - это связано с отношениями между классами. Отношения принимают форму родителя и ребенка. Ребенок использует методы, определенные в родительском классе. Основная цель наследования;
  • Возможность повторного использования — несколько дочерних элементов могут наследоваться от одного и того же родителя. Это очень полезно, когда нам нужно предоставить общие функции, такие как добавление, обновление и удаление данных из базы данных.
  • Полиморфизм — это связано с наличием одной формы, но множеством различных способов реализации. Основная цель полиморфизма;
  • Упростите обслуживание приложений и сделайте их более расширяемыми.

Концепции ООП в PHP

PHP — это объектно-ориентированный язык сценариев; он поддерживает все вышеуказанные принципы. Вышеуказанные принципы достигаются через;

  • Инкапсуляция — с помощью методов «get» и «set» и т. д.
  • Наследование — с помощью ключевого слова extends
  • Полиморфизм — с помощью ключевого слова «реализует».

Теперь, когда у нас есть базовые знания об ООП и о том, как оно поддерживается в PHP, давайте рассмотрим примеры, реализующие вышеуказанные принципы.

Что такое УМЛ?

Унифицированный язык моделирования UML — это метод, используемый для проектирования и документирования объектно-ориентированных систем.

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

Пример диаграммы классов

PHP ООП

Ключ диаграммы классов

  • Верхнее поле содержит имя класса
  • Среднее поле содержит переменные класса
  • Нижнее поле содержит методы класса
  • Знак >минус (-) означает частную область
  • Знак плюс (+) означает общедоступную область
  • Знак решетки (#) означает защищенную область

Как создать класс в PHP

Ключевое слово class используется для определения класса в PHP. Ниже приведены правила создания класса в PHP.

  • Имя класса должно начинаться с буквы
  • Имя класса не может быть зарезервированным словом PHP
  • Имя класса не может содержать пробелы

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

  • Все животные относятся к такому семейству, как травоядные, карнавальные и т. д.
  • Все животные едят пищу

На диаграмме ниже показана диаграмма для животного

PHP ООП

Давайте теперь закодируем наш класс животных

<?phpкласс Животное
{
    частная $ семья;
    частная еда;
    публичная функция __construct($family, $food)
    {
        $this->family = $family;
        $this->еда = $еда;
    }
    публичная функция get_family()
    {
        вернуть $this->family;
    }
    публичная функция set_family($family)
    {
        $this->family = $family;
    }
    публичная функция get_food()
    {
        вернуть $this->food;
    }
    публичная функция set_food($food)
    {
        $this->еда = $еда;
    }
}
?>

ЗДЕСЬ,

  • «private $family, $food» означает, что переменные не могут быть доступны непосредственно вне класса (инкапсуляция).
  • «public function __construct($family…)» — это метод конструктора php. Эта функция вызывается всякий раз, когда создается экземпляр класса. В данном случае мы настраиваем семью и еду.
  • «публичная функция get…()» — это метод, используемый для доступа к семейному или пищевому значению (инкапсуляция).
  • «public function set… ()» — это метод, используемый для установки значения семьи или еды (инкапсуляция).

Как реализовать наследование в PHP

Мы будем работать с коровой и львом. И корова, и лев наследуют от класса Animal.
На приведенной ниже диаграмме классов показаны отношения.

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

Обратите внимание, что корова наследуется от класса животных и также определяет свою собственную переменную и методы.
Давайте теперь закодируем класс Cow

<?php
класс Cow расширяет Animal
{
    частный $владелец;
    публичная функция __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
    публичная функция set_owner($owner)
    {
        $this->владелец = $владелец;
    }
    публичная функция get_owner()
    {
        вернуть $this->owner;
    }
}
?>

Давайте теперь закодируем класс Lion

<?php
класс Lion расширяет Animal
{
    публичная функция __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
}
?>

ЗДЕСЬ - «class … extends Animal» заставляет корову и льва использовать методы из класса Animal (Наследование).

Как создать объект класса

Для простоты классы Animal, Cow и Lion должны находиться в одном каталоге.
Давайте теперь создадим приложение, которое использует наши классы.
Пример класса PHP

<?php
требуется «Animal.php»;
требуется «Cow.php»;
требуется 'Lion.php';
$cow = new Cow('Травоядное', 'Трава');
$lion = новый лев('Canirval', 'Мясо');
echo '<b>Объект коровы</b> <br>';
echo 'Корова принадлежит ' . $корова->get_family() . ' семья и ест ' . $корова->get_food() . '<br><br>';
echo '<b>Объект Лев</b> <br>';
echo 'Лев принадлежит ' . $лев->get_family() . ' семья и ест ' . $lion->get_food();
?>

Тестирование нашего приложения

Давайте теперь просмотрим наше приложение в веб-браузере.

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

Фантастическое право! Давайте теперь посмотрим на третий принцип ООП, полиморфизм.
Допустим, мы хотим разработать приложение, которое подключается к различным механизмам баз данных, таким как MySQL и SQL Server, но использует один и тот же единый интерфейс.
Мы можем создать интерфейс, определяющий стандартные методы, и абстрактный класс, реализующий общие методы.

  • Интерфейс – похож на класс. Он только определяет методы и параметры.
  • Абстрактный класс — это класс, который нельзя использовать для непосредственного создания объекта. Его цель состоит в том, чтобы предоставить частичные или полные реализации общих методов.

Диаграмма классов ниже иллюстрирует взаимосвязь между нашим абстрактным классом, интерфейсом и классами реализации.

PHP OOP (ООП)

 
Давайте теперь создадим наш абстрактный класс
<?php
абстрактный класс DBCommonMethods
{
    частный $хост;
    частный $ дб;
    частный $uid;
    приватный $пароль;
    публичная функция __construct($host, $db, $uid, $password)
    {
        $this->host = $host;
        $this->дб = $дб;
        $this->uid = $uid;
        $this->пароль = $пароль;
    }
}
?>

ЗДЕСЬ,

  • «абстрактный класс» означает, что класс нельзя использовать непосредственно для создания объекта php.
  • «$host,$db…» — переменные класса, общие для всех реализаций.
  • «функция __construct (…)» — это метод конструктора класса php, который устанавливает значения общих переменных при инициализации.

Давайте теперь создадим интерфейс, содержащий стандартные методы, которые будут реализованы по-разному в зависимости от ядра базы данных.

<?php
интерфейс DBInterface
{
    общедоступная функция db_connect();
    вставка публичной функции ($ данные);
    общедоступная функция чтения ($ где);
    публичная функция update($where);
    публичная функция delete($where);
}
?>

ЗДЕСЬ,

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

Давайте теперь создадим конкретные классы, которые будут расширять класс DBCommonMethods и расширять интерфейс DBInterface. MySQLDriver.php

<?php класс MySQLDriver расширяется
DBCommonMethods реализует DBInterface { public function __construct($host, $db, $uid, $password)
{
parent::__construct($host, $db, $uid, $password); }
public function db_connect() { // здесь находится код подключения }
public function delete($where) { // здесь находится код удаления }
public function insert($data) { // здесь находится код вставки }
public function read($where) { //здесь идет код чтения }
public function update($where) { // здесь находится код обновления }
} ?>

MSSQLServerDriver.php

<?php
класс MSSQLServerDriver расширяется
DBCommonMethods реализует DBInterface { public function __construct($host, $db, $uid, $password)
 {
 parent::__construct($host, $db, $uid, $password); }
 public function db_connect() { // здесь находится код подключения }
 public function delete($where) { // здесь находится код удаления }
 public function insert($data) { // здесь находится код вставки }
 public function read($where) { //здесь идет код чтения }
 public function update($where) { // здесь находится код обновления }
 } ?>

ЗДЕСЬ,

  • «класс … расширяет DBCommonMethods» использовать методы в DBCommonMethods
  • «… реализует DBInterface» гарантирует, что класс предоставляет стандартные методы независимо от используемого драйвера базы данных.

Использование приведенного выше кода Код, использующий приведенный выше класс, будет выглядеть следующим образом.

<?php $db = новый MySQLDriver($host,$db,$uid,$password); ?>

Или

<?php $db = новый MSSQLServerDriver ($host,$db,$uid,$password); ?>

Остальная часть кода будет одинаковой для обоих драйверов, например;

<?php
$db->db_connect();
$db->вставить($данные);
?>

Резюме

  • Объектно-ориентированное программирование ООП — это мощная технология, которая моделирует приложения по объектам реального мира.
  • Класс — это представление объектов реального мира со свойствами и методами.
  • Три основных принципа ООП:
  • Инкапсуляция
  • Наследование
  • Полиморфизм

Начало в статье Структура и синтаксис PHP - кратко



Баннеры
Индекс цитирования
Первый Каталог - Видео, аудио, фото техника

Контакты

212027 РБ Могилёв
Phone: +375 - 33-690-5554
Phone: +375 - 44-55-44-2-44
Email: mail@maxweb.by
// Дневная статистика
191140
204000
Открыть на карте