SOLID ООП PHP

SOLID - это аббревиатура, обозначающая пять основных принципов объектно-ориентированного программирования: Single responsibility, Open-closed, Liskov substitution, Interface segregation и Dependency inversion.

Принцип Single responsibility говорит о том, что класс должен иметь только одну ответственность и делать только одну вещь. Это делает класс более гибким и упрощает его модификацию и тестирование.

Принцип Open-closed говорит о том, что классы должны быть открыты для расширения, но закрыты для изменения. Это означает, что при изменении требований к системе необходимо вносить изменения только путем добавления нового кода, а не изменения существующего кода.

Принцип Liskov substitution говорит о том, что объекты должны быть заменяемыми на своих потомков без изменения корректности программы. Другими словами, если класс A является подклассом класса B, то объекты типа B могут быть заменены объектами типа A без изменения свойств программы.

Принцип Interface segregation говорит о том, что клиенты не должны зависеть от интерфейсов, которые они не используют. Этот принцип позволяет избежать создания громоздких интерфейсов и улучшает гибкость системы.

Принцип Dependency inversion говорит о том, что модули верхних уровней не должны зависеть от модулей нижних уровней. Идея заключается в том, чтобы зависеть от абстракций, а не конкретных реализаций. Это позволяет лучше управлять зависимостями в системе.

class UserService implements UserServiceInterface { private UserRepositoryInterface $userRepository; public function __construct(UserRepositoryInterface $userRepository) { $this->userRepository = $userRepository; } public function createUser(array $user): int { $newUserId = $this->userRepository->saveUser($user); return $newUserId; } }

Класс UserService отвечает за создание пользователей и использует UserRepositoryInterface для сохранения пользовательских данных. UserService и UserRepositoryInterface следуют принципу Single responsibility, так как каждый из них отвечает только за свою область ответственности. При этом UserService выполняет принцип Dependency inversion, так как зависит только от абстракции UserRepositoryInterface, а не от конкретной реализации.

13: Interfaces in OOP PHP - Interfaces Explained - Object Oriented PHP Tutorial - PHP Tutorial

Liskov Substitution Principle Explained - SOLID Design Principles

PHP Interfaces \u0026 Polymorphism - Interfaces Explained - Full PHP 8 Tutorial

How To Create A OOP PHP Login System For Beginners - OOP PHP \u0026 PDO - OOP PHP Tutorial

#1: Single Responsibility Principle (SRP) in PHP, Laravel - SOLID Design Principles

4 PHP OOP Topics Laravel Devs Need to Master

PHP 8 - Programmation Orientée Objet - #19 Les principes SOLID

Реклама
Новое
Реклама