Блог веб-программиста

Здравствуйте, меня зовут Денис, я веб-программист. Занимаюсь веб-разработкой около 10 лет. Владею PHP, MySQL, HTML5 (bootstrap), jQuery. Специализируюсь на разработке серверной части (backend) для сайтов и веб-приложений. Работаю на Yii фреймворке. Есть опыт реализации крупных проектов с нуля, навыки координирования работы небольших команд. В работе использую git, паттерны проектирования, миграции, модульные тесты.

Ручная валидация CSRF токена в GET запросах

В Yii фреймворке реализована автоматическая защита POST запросов от CSRF атак, но если вдруг требуется использовать GET запросы, то этот механизм не работает. Для GET запросов метод validateCsrfToken компонента yii\web\Request всегда возвращает true.

Читать дальше

Единая архитектура модулей для advanced и basic приложений на Yii 2

Наверное, каждый разработчик на Yii фреймворке, рано или поздно, задумывает о том как вынести какой-то общий для всех своих проектов функционал в модули. Казалось бы, что может быть проще, но в этом месте создатели фреймворка любезно положили достаточно большие грабли в виде разделения макетов приложений на basic и advanced.

Читать дальше

Принудительная установка версии php в composer

Принудительная установка версии php в composer необходима когда требуется работать с проектом на нескольких серверах и на основном установлена свежая версия php, а на остальных более старые. Приведу пример конкретной ситуации, я развернул yii2-advanced приложение на компьютере с php 7.1, он создал composer.lock файл, который я пробую использовать на сервере. Но на сервере установлен php 7.0, и даже эта разница не позволяет установить библиотеки приложения на сервер.

Читать дальше

Loginza не работает с HTTPS?

На одном из сайтов где использовалась авторизация через сервис Loginza включили SSL сертификат, работа с сайтом стала только по HTTPS протоколу, и Loginza перестала работать. Не сразу, но решение найти получилось.

Читать дальше

Множественное число в Yii 2.X

В первой версии фреймворка, ещё можно было как-то запомнить, как настроить склонение имен, но во второй версии для склоненения используется библиотека PHP, которая настраивается сложнее. Сохраню шпаргалку для себя тут.

Читать дальше

Генерация облака тегов на PHP

В итернете существует достаточно много рецептом как сделать облако тегов, и я не буду останавливаться на этой теме подробно. Основное, что мне не понравилось в примерах, что весь код был перемешан в одну кучу. Основа облака тегов - это формула определения размера тега. Вот для неё я и написал свою функцию (хелпер). А остальное, для вас не должно составить труда написать самостоятельно. В хелпере реализовано 2 формулы, для линейного расчета, и для логарифмического.

Читать дальше