All streams
Search
Write a publication
Pull to refresh
10
0
Пятинский Михаил @zenn

Веб-программирование

Send message
Из забавного — не получится ничего сделать если соль и/или алгоритм для подписи будут неизвестны атакующему.

Это смотря для чего она используется эта подпись, к сожалению вы не показали это в статье. Если это валидация «голоса» — то строка так или иначе должна быть передана клиенту (возможно в другом виде) где и может быть поймана.
[sarcasm]В народе бытует мнение о том, что дизассемблирование библиотек Win позволяет не только писать свою, похожую систему но и использовать данные навыки для написания малвари/отправлять багхантинг за вознаграждение.[/sarcasm]
Извините, но почему singleton должен казаться магией? Да, возможно его использование действительно избыточно для некоторых системных логик типа meta, database и property(тут бы скорей подошел factory).
По поводу повторного использования — да, вы правы, нужно предусматривать это в параметрах метода или конструкторе класса. Так же раньше было наследование интерфейсов для моделей расширений (как вы и говорили чтобы дать разработчику понять какие методы являются обязательными) но я их упразднил до переработки и как получилось — попросту забыл о них.
Спасибо за ссылки и советы по делу, обязательно прочту ну и думаю что к новой версии я учту ваши рекомендации как и тех, кто высказывался за стандарт PSR.
По 1 пункту — было принято такое решение (подчеркивание) чтобы выделить данные методы как системные и исключить возможность их случайного переименования или использования по незнанию. По 2 пункту — раньше были шаблонные позиции (типа left/bottom/header/right/side) но от такой практики решил отказаться, ибо выглядело это еще более странно и результат обработки не всегда был ожидаемым и да, для стандартных модулей переменные предопределены в шаблоне (который был написан выше выходит за их рамки). Не совсем понял о чем говориться в 3 и 4 пункте, да и в header я пишу только в 1 методе (void redirect($uri)).
Хорошее сравнение, достаточно давно использую Maria db однако не задумывался о переходе на XtraDB, хотя и mysql 5.6 себя неплохо показывает в реальных условиях.
Да, совсем не по-гиковски. Вот был бы свитер!
В ближайшие дни интересно будет следить за тенденцией изменения кол-ва подписчиков у компании :)
Да, раздел закладок будет существенно переработан, спасибо за напоминание.
Хорошо что это не коснется бесплатных сертификатов от cloudflare (кому интересно — там sha256, ну а для старых клиентов отдается sha1+rsa но им такой «апгрейд» не грозит). В принципе действия компаний логичны, да и сертификаты они вроде-бы не продают, сговор скорей против устаревшей технологии чем какого-либо объекта бизнеса.
Ближе к вечеру (вчера) и у меня заработало.
Я бы это не назвал «работает» — ссылка на загрузку по прежнему не доступна.
Достаточно удобная система для управления одностраничником с посадочной/лэндингом.
П.с. — официальный сайт не работает, хотя демо-версия доступна.
Это лучше так же тем, что для автокомплита в IDE будет достаточно следующего phpdoc: @ return static, а в случае описанным мной выше придется достаточно упорно поизвращаться.
Мой вариант был чутку иным:
abstract class singleton {
    protected static $instance = array();

    protected final function __construct() {}
    protected final function __clone() {}
    protected final function __wakeup() {}

    public static function getInstance() {
        $call_target = get_called_class();
        if(!array_key_exists($call_target, self::$instance))
            self::$instance[$call_target] = new $call_target;
        return self::$instance[$call_target];
    }

но ваш действительно проще и извращаться с phpdoc не нужно, да и вызов instance так же происходит лишь 1 раз.
Да, соглашусь у многих после «стандартной установки» сайт уже набит материалами и кучей модулей(bitrix, umi) — об аутентичности для всех систем я не заявлял. И да, все выбранные cms обладали более-менее схожим функционалом (интернет магазинов не было в тестировании).
Но довести все 10 систем до «одинаково равного уровня наполнения» — очень затратно и опять же вызовет столько же вопросов о том, действительно ли все системы находились в равных условиях.
Как говориться — не важно как тестируют, важно как считают :)
Да, я уже над этим задумался. Но решение есть несколько иное — т.к. все одиночки наследуют \engine\singleton — внедрить в него тот самый статический getInstance() и записывать в локальную статическую переменную внутри singleton ссылку на инициированный класс. Возможно, ваше решение лучше(если есть что «почитать» или пример — пришлите в л.с.). Спасибо.
По поводу эволюции времени отклика в зависимости от разных страниц, а так же продолжительности «жизни» сайта (наполнения его базы содержимым) — действительно был бы интересный эксперимент, но он достаточно трудоемкий.
Да, я в статье отметил, что по мере расширения базы данных (кол-ва материалов на сайте) ситуация может существенно измениться.
Я думаю нужно выбирать те системы, которые вам интересны как и критерии, которые считаете важными для вашего проекта.
С OPCache в данном частном случае все поменялось наоборот, друпал показал лучшее время загрузки и меньшее потребление памяти после «чистой установки».

Information

Rating
Does not participate
Location
Керчь, Республика Крым, Россия
Date of birth
Registered
Activity