PHP программист с 10+ летним опытом работы


Профессиональные знания и навыки

  • 10+ лет разработки на PHP
  • отличное знание ООП, большой опыт работы с MVC фреимворками Yii и Zend Framework
  • большой опыт работы с MySQL и PostgreSQL. Понимание принципов SQL, опыт оптимизации SQL-запросов, написания триггеров (PL/SQL), работа с системами миграций
  • опыт работы с Git, Subversion, Composer
  • умение писать unit и приемочные тесты с помощью Codeception и PHPUnit
  • опыт разработки клиент-серверных приложений с использованием JSON-RPC, SOAP и REST-API архитектуры
  • хорошие знания в области написания регулярных выражений
  • степень магистра информационных технологий

Авторские разработки


RBAC - модуль для Yii2

Модуль для создания ролей и прав доступа через веб-интерфейс, так же имеющий веб интерфейс для назначения ролей пользователям Поведение для приложения, проверяющее право доступа к action по внесенным в модуле правилам.

Тестирование моделей в Yii2

  • проверка на возможность массового присвоения атрибута
  • проверка на обязательность заполнения параметра
  • проверка на длинну строки
  • проверка на наличие связей в моделе

Custom error handler

Модуль для Yii 2.x, позволяет повесить свою обработку на исключения (Exception). Например для отлавливания "опасных" действий пользователя.

Последние записи блога


Лимитирование запросов (RateLimiter) к приложению в Yii2

Установка лимита запросов — один из вариантов защиты приложения. Ведь согласитесь, обычный пользователь врятли сможет генерировать сотню запросов к приложению в минуту. В Yii такая защита имеется из коробки и основана на алгоритме Leaky bucket. Главное знать о ее существовании и использовать по назначению. Как настроить лимит запросов к приложению в Yii2 и рассмотрим в этой статье. Для начала оговорюсь, лимитирование запросов (RateLimiter) — это фильтр, поэтому его можно использовать в любом (не только REST) контроллере или модуле, подключив в виде поведения... читать далее

Уязвимость моделей в Yii2 или о важности safe аттрибутов

Давайте посмотрим на метод update контроллера, генерируемого с помощью gii. Подразумевается, что у вас есть форма, которая отправляет POST-запрос на данный action. Данные загружаются в модель, валидируются и сохраняются. Допустим, что данная форма нужна чтобы дать возможность пользователю обновить свое отображаемое имя (username). Но при неправильном указании safe-атрибутов в модели, злоумышленник сможет обновить и другие поля, такие как пароль или статус, причем не только для своего id. Для этого достаточно отправить POST запрос на update/чужой-id передав не только значение username, но и значение password....читать далее

Последние проекты


http://e-navbat.mfa.uz

Интерактивный сайт консульских услуг

Позволяет записаться на прием в консульское учреждение Узбекистана за рубежом, получить исчерпывающую информацию об услуге, узнать перечень необходимых документов, заполнить формы и заявки online. Проект выполнен по заказу UNDP. Включает в себя такие модули как:
  • электронная очередь в консульское учреждение
  • эффективный тайм-менеджмент предоставления услуг
  • интерактивная настройка, предоставляемых услуг
  • генератор форм и анкет
  • экспертная система и часто задоваемые вопросы
  • модуль администрирования и безопасности
  • кабинете консульства, с возможностями персонализации
  • мультиязычность с неограниченным количеством поддерживаемых языков
  • статистические отчеты для анализа эффективности работы консульских учреждений

 

Map application for Philip Morris Inc

Приложение для поиска ближайщего пункта продаж. Согласно законодательству РФ, доступ к приложению имеют только пользователи, подтвердившие свой возраст. Приложение используется при проведении маркетинговых исследований, рекламных акций и прочих мероприятий. Реализованы различные способы идентификации пользователя и типы предоставления доступа к приложению.

 

Конспекты книг


Дизайн пользовательского интерфейса. Искусство мыть слона
Копирование материалов разрешено при наличии активной ссылки на источник
Яндекс.Метрика
Developer.uz - web developer

Error (#32)

An internal server error occurred.

The above error occurred while the Web server was processing your request.

Please contact us if you think this is a server error. Thank you.

Копирование материалов разрешено при наличии активной ссылки на источник
Яндекс.Метрика