Ответы пользователя по тегу ООП
  • Правильно ли я использую класс?

    1) Почему функции и переменные с нормальным неймингом, а класс как "Отщит"?) Никаких f - называйте все своими именами.
    2) Модель формы - выносятся в отдельный класс. Валидация полей в моделях формы. И вид тоже в отдельном файле.
    3) Использование супер глобальных переменных POST GET - не допустимо, данные должны пробрасываться/инжектится в класс, а не использоваться внутри. Как правило они используются в контроллерах в рамках MVC.
    4) Переводы и надписи выносятся тоже в отдельный файл i18n. Представьте ситуацию, вам завтра позвонили и сказали, надо сделать на немецком языке. Вы лезете в каждый класс, что бы это все исправить? А если классов 100 ?)
    5) Метод Save можно превратить в апдейт одновременно. Если в метод добавлено Id то делаете апдейт записи, если нет, то создаете.
    6) Я бы еще добавил исключений, но то уже такое, каждый делает где ему удобно.

    Почему на босса есть сеттер, а на директора add Хотя это тоже сеттер ?)
    Ответ написан
    6 комментариев
  • Как узнать размер (кол-во занимаемых байт) объекта в PHP?

    $before=0;
    $a='испытуемая переменная либо массив или объект';
    $before = memory_get_usage();
    unset($a);
    echo 'размер переменной составил: ',$before-memory_get_usage(),' байт';
    Ответ написан
    Комментировать
  • Как делаются браузерные игры?

    Конкретно ваш сайт использует следующий стек технологий.
    0e0d09c3660f4fd9916f8eb03f5a07cc.jpg

    это то что показал Wappalyzer

    А игры используются на разных языках, но чаще всего это PHP. Но всегда есть исключения, например Empire of code Основан на разных JS фреймворках + Nginix + NodaJS

    И сама игра основана на знании питона или Жс, иначе трудно будет играть в игру, где требуется знание ЯП)

    А на php все просто, массивы туда сюда, и CRON
    Ответ написан
  • Зачем нужны абстрактные классы (PHP)?

    У разных языков по разному. Например в Java можно реализовывать кучу интерфейсов, но нельзя реализовать множественное наследование не больше 3-ех наследников и с помощью интерфейсов решают это.

    Интерфейс нужен обычно, когда описывается только интерфейс (тавтология). Например, один класс хочет дать другому возможность доступа к некоторым своим методам, но не хочет себя "раскрывать". Поэтому он просто реализует интерфейс.

    Абстрактный класс нужен, когда нужно семейство классов, у которых есть много общего. Конечно, можно применить и интерфейс, но тогда нужно будет писать много идентичного кода.

    Пример: Абстрактный класс заведомо не будет запрошен как объект. К примеру абстрактный класс - Транспорт: Но все его наследники будут Автомобилем, краном, лодкой, самолет и т.д. Например вы заведомо знаете, что весь транспорт будет двигаться. И вы объявляете абстрактный метод(движение) в абстрактном классе, который нужен будет 100% всем наследникам т.е. без движения это уже не транспорт и новый наследник обязан будет реализовать это. В самом же абстрактном классе, есть другие поля и свойства, которые будут унаследованы. Ну например мощность двигателя(очень грубо), или то что их роднит.
    Ответ написан
    2 комментария