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