ООП. Три основные парадигмы .

Основные принципы в ООП и наверное единственные это:

  • Полиморфизм
  • Инкапсуляция
  • Наследование

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

Полиморфизм

Если говорить кратко, полиморфизм — это способность объекта использовать методы производного класса, который не существует на момент создания базового.

Плохой пример 🙂

<?php
abstract class Aggregator {
    protected $name;
    public function __constructor(string $name) {
        $this->name = $name;
    }
    
    abstract public function doSomeThing();
}

class YandexAggregator extends Aggregator {
    public function __constructor(string $name) {
        $this->name = 'Yandex' . $name;
        parent::__constructor($name);
    }
}
Инкапсуляция

Это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

Т.е. Это сокрытие кода от пользователя.

Наследование

Думаю здесь все понятно из названия 🙂

Puphpeteer или библиотека для веб скрапинга

Недавно пришлось переписать скрипт с py3 на php из-за частых зависаний (зомби процессов). Кстати, все тот же хром только типа консольная версия.

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

Вот же она https://github.com/nesk/puphpeteer — интерфейс

Дока самой библиотеки https://github.com/GoogleChrome/puppeteer/

Был очень приятно удивлен, что есть такие фичи типа тайм аута и ожидание от процесса каких либо действий (типа защита от зомби процесса). Почему то в прослойке для питона таких там нет или я плохо искал на протяжении года 🙂

Вроде все работает быстрее и без зависаний, что главное было достигнуто.

Надеюсь теперь не нужно будет каждый раз заходить на сервер, проверять логи, не зависли ли скрипты, затем убивать процессы и удалять pid (не спрашивайте почему 🙂 )

Вообщем юзайте пехепешники 🙂 GL & WS (Web scrapping)