Архив за месяц: Ноябрь 2014

Yii2: ArrayHelper

В дополнение к богатым возможностям php по работе с массивами, Yii 2.0 предлагает ArrayHelper, который позволяет более эффективно обращаться с массивами. Получение значений Получение одного значения Получение значений элементов массива, объекта или другой сложной структуры, с использованием стандартных методов php очень часто встречается. Всегда необходимо проверить существование нужного ключа в массиве с помощью isset и тогда получить значение или вернуть значение… Читать далее »

Рекомендации по разработке http json api

Введение Данное руководство раскрывает лучшие практики разработки http+json api. Основы Обязательное использование TLS Требуйте подключение с использованием TLS, без исключений. Не вижу смысла даже объяснять, почему полезно TLS и чем опасен отказ от его использования. Просто возьмите за привычку использовать TLS всегда, когда это возможно. В идеале, просто отклоняйте любые не TLS запросы, не отвечая на запросы на порт 80,… Читать далее »

Yii2: Диалоги confirm в стиле bootstrap

По-умолчанию, все системные диалоги confirm используют стандартный javascript alert(). Однако это немного не вписывается в концепцию сайта на Twitter Bootstrap. Библиотека Bootbox содержит как стандартные методы alert, prompt и confirm, так и метод dialog, создающий модальное диалоговое окно. Метод confirm описан в файле app/vendor/yiisoft/yii2/assets/yii.js: [js]/** * Displays a confirmation dialog. * The default implementation simply displays a js confirmation dialog. * You… Читать далее »

Yii2: Табличный ввод

Зачастую перед разработчиками встает задача реализации пакетного ввода данных для пользователя. Нужно предоставить пользователю возможность создания нескольких сущностей одной модели и сохранения их разом. Чаще всего для реализации подобной задачи используется html-таблица, отсюда и название: табличный ввод. Вариант 1 Использовать готовые решения, например TabularForm widget. Вариант 2 Запилить собственную реализацию табличного ввода в Yii 2.0.

Yii2: Сохранение и отображение даты/времени

Должно быть, это одна из самых часто возникающих, и в тоже время, очень простая задача для реализации в Yii 2.0. Зачастую мы сохраняем дату/время в базе данных в одном формате, а вывести на экран ее нужно в другом формате. Многие уходят огородами и изобретают свои велосипеды. Ниже представлены несколько простых советов, которые помогут в освоении работы с данными в формате… Читать далее »

Yii2: Примеряем Pjax на ActiveForm и GridView

В фреймворке Yii 2.0 встроена поддержка jquery плагина pjax, объединяющего pushState и ajax технологии. Подробнее на гитхабе разработчика. Для примера сделаем возможность добавления новой Заметки в списке заметок без перезагрузки страницы.

Yii2: все плюшки Twitter Bootstrap

Одной из замечательных особенностей Yii 2.0 является встроенная поддержка Bootstrap 3.0 от Twitter. Для вывода компонентов бутстрапа в шаблонах приложения можно использовать виджеты. Виджеты в Yii2 — небольшие блоки кода, которые можно легко многократно использовать для форматированного вывода данных. Как и большинство объектов в Yii 2.0, настройки виджету можно передать в виде массива параметров. Вместо немного монструозного $param = array(‘key1′ =>’value1’,… Читать далее »

Yii2: работа с экземпляром приложения

Одно из основных понятий в фреймворке Yii 2.0 — приложение. В контексте Yii2, приложение — объект, который определяет структуру и и жизненный цикл запросов на веб-сайте. Приложение, так же, может быть и консольным, но мы будем рассматривать веб-приложение. Каждый запрос к Yii-приложению осуществляется через входной скрипт, который настраивает приложение: $application = new yii\web\Application($config); и запускает его: $application->run();

Yii2: Простая реализация RBAC с двумя ролями

Один из самых часто встречающихся вопросов по Yii 2.0 — реализация управления доступом на основе ролей. Поддержка RBAC встроена в Yii2, но она может быть сложновата для реализации начинающими разработчиками, впервые столкнувшимися с этим вопросом при знакомстве с Yii 2.0. Часто бывает достаточно всего двух ролей: Пользователь и Администратор. Эта реализация поможет понять как работает механизм RBAC в Yii2 и… Читать далее »

Yii2: Начало

В данной статье мы установим Yii 2.0, настроим локальную среду для разработки и создадим первое простое приложение из встроенного шаблона basic. Релиз Yii 2.0, новой версии замечательного фреймворка, состоялся 12 октября 2014 года. Установка Yii 2.0 Подробную информацию по установке фреймворка можно найти в соответствующем разделе Документации по Yii 2.0.  Там же можно найти и описание классов и расширений. Русская… Читать далее »

PHP управление Onvif-совместимой купольной IP камерой RVI/Dahua

Недавно появилась необходимость собирать скриншоты с нескольких управляемых PTZ купольных IP камер RVi-IPC52DN20‎. Стандарт Onvif подразумевает взаимодействие с устройством через SOAP интерфейс. Получаем информацию об устройстве Согласно официальной спецификации, на запрос GetDeviceInformation: [xml]<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <GetDeviceInformation xmlns="http://www.onvif.org/ver10/device/wsdl"/> </s:Body> </s:Envelope>[/xml]