Речь, главным образом, о ноутах. На десктопе я пока на 10м поколении, которого за глаза хватает. И да, полнодисковое шифрование это требование конторы и ISO 27001. Меньшее из зол, по сравнению с другими мерами.
evilelf: Если нужно минимизировать количество запросов, можно обойтись без ActiveRecord. Он дёргает довольно большой dataset за собой по findByPk() и одним запросом не обходится (можно заглянуть в дебаг). Используйте DAO конструктор и для проверки наличия, и для внесения изменений. Ну или же пренебречь возвратом количества затронутых рядов и продолжать использовать "on duplicate key update". Сохранить и "on duplicate key update", и получить affected rows можно только если предварительно сделать select('count(id)')->from(...)->where(...)->queryScalar(). Ну и оптимизации ради проверить explain'ом всё ли в порядке и на месте ли индексы.
С константами так сделать не получится - на то они и константы, ООП подход тут не при чём. Можно использовать класс Config с полем $data, которое будет содержать массив ключей конфига. В конструкторе определяем динамически заполняемые константы. Создаём метод get($key); который будем вызывать как $a = (new Config)->get('site_name'). Такой вызов работает начиная с PHP 5.4.
ООП - удобный инструмент, но осваивать его лучше постепенно. Одно дело спроектировать какой-то модуль (калькулятор зарплат, например), а другое - полноценное приложение. Тут не обойтись базовыми понятиями и, скорее всего, антипаттерны начнутся с самого входного скрипта.
Готовые решения могут быть разными. Это может быть содранный с phpclub кусок кода, который непонятно как работает и думан вообще для другой задачи. Или это может быть фреймворк. Yii2 или Laravel подошли бы в качестве решения, которое реализуя соглашения, условно "навязывает" правильный подход к проектированию приложения. Там тоже есть место подвигу, но если писать с нуля и вдумчиво курить мануалы, можно получить неплохой результат.
brutal_lobster: Самые лютые ботнетчики в сети - это как-раз таки клиенты-юриков. Для них режим notification-only и индивидуальная работа. В любом случае, спасибо за ссылку, конструктив и пищу для размышлений. Пока самый значительный эффект проявился после отсекания DNSBL зон, может быть и ну его, этот RRL.
Нужен, да - dnstop и чтение RRL-лого заставляет волосы шевелиться от количества паразитных запросов от ботов. Клиентов не одна и не две тысячи, многие из них являются частью ботнетов. На сервере включены DNSBL зоны, но "бомбёжка" нередка. Даже на текущем уровне фильтрации удалось уменьшить загрузку примерно в 7-9 раз. Сейчас как раз и идёт поиск "волшебных чисел" путём копания pcap логов. За ссылки на хорошие методики построения baseline буду исключитльно благодарен.
На личном опыте могу сказать, что по сравнению с Symfony у Yii существенно ниже порог вхождения и он несложен в разработке. Конечно, если нет понимания MVC, то будет сложно. Равно как нужно понимание того, для чего следует использовать фреймворк. Как я говорю своим подопечным: «На фреймворках сложные вещи делаются просто, а простые — сложно». Писать hello world на MVC по меньше мере неразумно.
Насчёт библиотек тоже позволю себе не согласиться. Точнее, перефразирую: «В библиотеке мало хороших законченных расширений, на поддержку и доработку которых авторы не забили». Эта беда есть, да. Многие вроде бы полезные расширения лежат в альфа-бета-сырых версиях и требуют доработки напильником.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.