Yii2: ArrayHelper

В дополнение к богатым возможностям php по работе с массивами, Yii 2.0 предлагает ArrayHelper, который позволяет более эффективно обращаться с массивами.

Получение значений

Получение одного значения

Получение значений элементов массива, объекта или другой сложной структуры, с использованием стандартных методов php очень часто встречается. Всегда необходимо проверить существование нужного ключа в массиве с помощью isset и тогда получить значение или вернуть значение по-умолчанию:

Yii2 предлагает очень удобный способ сделать тоже самое:

Читать далее Yii2: ArrayHelper

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

Введение

Данное руководство раскрывает лучшие практики разработки http+json api.

Основы

Обязательное использование TLS

Требуйте подключение с использованием TLS, без исключений. Не вижу смысла даже объяснять, почему полезно TLS и чем опасен отказ от его использования. Просто возьмите за привычку использовать TLS всегда, когда это возможно.

В идеале, просто отклоняйте любые не TLS запросы, не отвечая на запросы на порт 80, что бы исключить любой небезопасный обмен данными. В случае, когда это не возможно, просто отвечайте: 403 Forbidden. Читать далее Рекомендации по разработке http json api

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

По-умолчанию, все системные диалоги confirm используют стандартный javascript alert(). Однако это немного не вписывается в концепцию сайта на Twitter Bootstrap.

Библиотека Bootbox содержит как стандартные методы alert, prompt и confirm, так и метод dialog, создающий модальное диалоговое окно.

Метод confirm описан в файле app/vendor/yiisoft/yii2/assets/yii.js:

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

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

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

Вариант 1

Использовать готовые решения, например TabularForm widget.

Вариант 2

Запилить собственную реализацию табличного ввода в Yii 2.0. Читать далее Yii2: Табличный ввод

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

Должно быть, это одна из самых часто возникающих, и в тоже время, очень простая задача для реализации в Yii 2.0.

Зачастую мы сохраняем дату/время в базе данных в одном формате, а вывести на экран ее нужно в другом формате.

Многие уходят огородами и изобретают свои велосипеды. Ниже представлены несколько простых советов, которые помогут в освоении работы с данными в формате дата/время в фреймворке Yii2. Читать далее Yii2: Сохранение и отображение даты/времени

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

Yii2 + Pjax
Yii2 + Pjax

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

Для примера сделаем возможность добавления новой Заметки в списке заметок без перезагрузки страницы. Читать далее Yii2: Примеряем Pjax на ActiveForm и GridView

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

bootstrap3 + yii2

Одной из замечательных особенностей Yii 2.0 является встроенная поддержка Bootstrap 3.0 от Twitter.

Для вывода компонентов бутстрапа в шаблонах приложения можно использовать виджеты. Виджеты в Yii2 — небольшие блоки кода, которые можно легко многократно использовать для форматированного вывода данных. Как и большинство объектов в Yii 2.0, настройки виджету можно передать в виде массива параметров. Вместо немного монструозного

лучше использовать

Читать далее Yii2: все плюшки Twitter Bootstrap

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

yii2

Одно из основных понятий в фреймворке Yii 2.0 — приложение. В контексте Yii2, приложение — объект, который определяет структуру и и жизненный цикл запросов на веб-сайте. Приложение, так же, может быть и консольным, но мы будем рассматривать веб-приложение.

Каждый запрос к Yii-приложению осуществляется через входной скрипт, который настраивает приложение:

и запускает его:

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

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

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

Часто бывает достаточно всего двух ролей: Пользователь и Администратор. Эта реализация поможет понять как работает механизм RBAC в Yii2 и может стать отправной точкой для дальнейшего расширения функционала управления доступом на основе ролей.

Большая часть работы уже проделана разработчиками Yii 2.0. Что осталось сделать:

  1. Добавить константу  для роли Администратора в модуль User
  2. Добавить эту константу в перечень значений роли пользователей
  3. Добавить к модели User статичный метод isUserAdmin
  4. Добавить к модели LoginForm метод loginAdmin
  5. Изменить контроллер backend так, чтобы он использовал метод loginAdmin при входе пользователя.
  6. Добавим правило доступа, ограничивающее доступ к странице about для всех, кроме Администратора.

За основу возьмем приложение advanced. Про установку его из стандартной поставки Yii2 можно узнать в официальном руководстве. Читать далее Yii2: Простая реализация RBAC с двумя ролями

Yii2: Начало

В данной статье мы установим Yii 2.0, настроим локальную среду для разработки и создадим первое простое приложение из встроенного шаблона basic.

Релиз Yii 2.0, новой версии замечательного фреймворка, состоялся 12 октября 2014 года.

Установка Yii 2.0

Подробную информацию по установке фреймворка можно найти в соответствующем разделе Документации по Yii 2.0.  Там же можно найти и описание классов и расширений. Русская документация по Yii 2.0 пока еще не готова на 100%, но перевод ведется активными темпами и текущую версию доков можно оценить здесь.

Установка Composer’а

Yii2 поддерживает Composer, популярный менеджер зависимостей для php. Читать далее Yii2: Начало

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

Недавно появилась необходимость собирать скриншоты с нескольких управляемых PTZ купольных IP камер RVi-IPC52DN20‎.

Стандарт Onvif подразумевает взаимодействие с устройством через SOAP интерфейс.

Получаем информацию об устройстве

Согласно официальной спецификации, на запрос GetDeviceInformation:

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