Автоматты аударма пайдаланылды

PHP-дегі қатты: қысқаша шолу

SOLID-бұл әзірлеушілерге таза, қолдау көрсетілетін және икемді код жазуға көмектесетін объектіге бағытталған бағдарламалаудың (ОP) бес қағидасының жиынтығы. PHP мысалында әр принципті қарастырайық.

S-single Responsibility Principle (жалғыз жауапкершілік принципі): сыныпта бір жауапкершілік болуы керек. Мысалы, PHP-де мәліметтер базасымен жұмыс істеуге жауапты сынып деректерді тексерумен айналыспауы керек.

class UserRepository {
    public function save(User $user) {
        // Пайдаланушыны дерекқорға сақтау логикасы
    }
}

O-open / Closed Principle (ашықтық/жабықтық принципі): сыныптар кеңейту үшін ашық, бірақ өзгерту үшін жабық болуы керек. PHP-де мұны абстрактілі сыныптар мен интерфейстер арқылы жүзеге асыруға болады.

interface Logger {
    public function log($message);
}

class FileLogger implements Logger {
    public function log($message) {
        // Журналдарды Файлға жазу логикасы
    }
}

L-Liskov Substitution Principle (Лискаларды ауыстыру принципі): Ішкі сынып нысандары бағдарламаның әрекетін өзгертпестен ата-аналық сынып нысандарын ауыстыруы керек. Мысалы, егер құс сыныбында fly әдісі болса, онда Penguin Ішкі сыныбы оны бұзбауы керек.

class Bird {
    public function fly() {
        // Ұшу логикасы
    }
}

class Penguin extends Bird {
    // Пингвиндер ұшпайды, сондықтан fly әдісі Penguin-де болмауы керек
}

I-интерфейсті бөлу принципі (интерфейсті бөлу принципі): ортақ интерфейстерге қарағанда бірнеше арнайы интерфейстердің Болғаны жақсы. PHP-де бұл артық іске асырудан аулақ болуға көмектеседі.

interface Flyable {
    public function fly();
}

interface Swimmable {
    public function swim();
}

class Duck implements Flyable, Swimmable {
    public function fly() {
        // Ұшу логикасы
    }

    public function swim() {
        // Жүзу логикасы
    }
}

D-Dependency Inversion Principle (тәуелділікті инверсиялау принципі): жоғары деңгейлі Модульдер төмен деңгейлі модульдерге тәуелді болмауы керек. Екеуі де абстракцияларға байланысты болуы керек.

interface Mailer {
    public function send($recipient, $message);
}

class SmtpMailer implements Mailer {
    public function send($recipient, $message) {
        // SMTP арқылы пошта жіберу логикасы
    }
}

class UserNotification {
    private $mailer;

    public function __construct(Mailer $mailer) {
        $this->mailer = $mailer;
    }

    public function notify($user) {
        $this->mailer->send($user->email, "Hello!");
    }
}

SOLID принциптері жүйенің өзгерістерге төзімділігін қамтамасыз ету және оның ауқымдылығын жақсарту арқылы PHP-де құрылымдалған және қолдау көрсетілетін кодты жасауға көмектеседі.

Пікірлер 4

Кіру пікір қалдыру үшін