Архив рубрики: yii2

Yii2: Современный стиль PHP кода

  При разработке приложений на Yii 2 полезно придерживаться стиля кода его разработчиков. Если, конечно, у вас нет своего устоявшегося стиля, соответствующего современному PHP и PSR.

Yii2: Обработка ошибок

  Обработчик ошибок включен в Yii 2 по умолчанию. Отключить его можно добавив следующий код в стартовый скрипт приложения web/index.php: // Отключение обработчика ошибок Yii2 define(‘YII_ENABLE_ERROR_HANDLER’, false); Конфигурация по умолчанию В шаблонах приложений Yii 2 basic и advanced обработчик ошибок подключен как компонент приложения errorHandler. Рассмотрим примеры конфигурации: приложение basic: config/web.php; приложение advanced: индивидуальные настройки для каждого из приложений frontend/config/main.php и backend/config/main.php.

Обновление ICU на CentOS/Red Hat/Fedora

Столкнулся с проблемой, при выводе времени, yii\i18n\Formatter формирует для зоны ‘Europe/Moscow’ время, соответствующее GMT+4: $timeZone = ‘UTC’ Yii::$app->formatter->timeZone = $timeZone; echo $timeZone . ‘: ‘ . Yii::$app->formatter->asTime(time()) . ‘<br>’; $timeZone = ‘Europe/Moscow’ Yii::$app->formatter->timeZone = $timeZone; echo $timeZone . ‘: ‘ . Yii::$app->formatter->asTime(time()) . ‘<br>’; выводил : UTC: 6:54:39 Europe/Moscow: 10:54:39 В конфиге приложения временная зона указана явно: ‘timeZone’ => ‘Asia/Omsk’.

Yii2: Разбираемся с сессиями

Использование сессий — это хороший способ сохранять информацию между визитами пользователя на сайт. Изначально, в php, работа с сессиями ведется через глобальный массив $_SESSION. Для удобства работы, экземпляр приложения yii2 содержит компонент yii\web\Session, доступный через Yii::$app->session. Открытие и закрытие сессий Простой код, иллюстрирующий работу с сессиями. $session = Yii::$app->session; // проверяем наличие открытой сессии if ($session->isActive) … // открываем сессию $session->open(); //… Читать далее »

Yii2: Выпадающий список DropDownList

При создании пользовательских интерфейсов, кроме текстовых полей, часто используются выпадающие списки — Drop-Down List. Этот элемент позволяет ограничить пользователя выбором одного или нескольких вариантов из предложенного списка. Виджет yii\widgets\ActiveField  уже содержит метод dropDownList( $items, $options = [] ) , являющийся оберткой для yii\helpers\BaseHtml::activeDropDownList( $model, $attribute, $items, $options = [] )  отрисовывающего выпадающий список, используя html тег select .

Yii2: поля ActiveForm

Наверняка, одними из самых часто используемых вами yii2 виджетов станут yii\widgets\ActiveForm и его улучшенная Bootstrap 3 версия — yii\bootstrap\ActiveForm. Сегодня рассмотрим использование yii\bootstrap\ActiveForm  в деталях. Наглядным примером послужит демонстрация и исходные коды (модуль simpleactiveform).

Yii2: Разбираемся с GridView

Специально для данной заметки, я подготовил пример использованием разных параметров GridView. Исходники модуля и всего приложения, доступны на битбакете. За основу взять код, полученный при помощи генератора Gii. Типичный код GridView после автоматической генерации: <?= GridView::widget([ ‘dataProvider’ => $dataProvider, ‘columns’ => [ [‘class’ => ‘yii\grid\SerialColumn’], ‘id’, ‘parent_id’, ‘name:ntext’, ‘url:ntext’, ‘category_image:ntext’, // ‘created_at’, // ‘updated_at’, [‘class’ => ‘yii\grid\ActionColumn’], ], ]); ?>

Yii2: Вникаем в Pjax

Популярный ныне js фреймворк jQuery оброс большим количеством разнообразных плагинов. Одним из таких плагинов является pjax, позволяющий легко создавать веб приложения с использованием связки ajax и pushState. Эта технология позволяет после нажатия ссылки или submit на форме, отправить на сервер специальный запрос и получить в ответ только то содержимое, которое необходимо обновить на странице, затем pjax заменяет старое содержимое новым и добавляет… Читать далее »

Yii2: Простое приложение c AngularJS фронтендом. Серверная часть

Теперь, когда все подготовительные работы закончены, можно всерьез заняться нашим приложением. PHP фреймворк Yii 2.0 позволяет быстро и просто создать необходимый нам функционал, включая RESTful api. Забыл сказать, в этом учебном приложении мы реализуем простой каталог фильмов. Данные каталога будем хранить в базе данных mysql. Структура базы данных Создадим базу данных yii2-ang и добавим в нее таблицу film со следующей структурой: id… Читать далее »

Yii2: Простое приложение c AngularJS фронтендом. Подготовка

Для начала, подготовим рабочее окружение, скачаем все необходимые библиотеки и создадим шаблоны будущих приложений. Будем считать, что у нас есть 2 домена: client.local и server.local. Создадим для них корневые соответствующие корневые каталоги: client и server. И настроим наш веб-сервер. Примерная конфигурации для apache: <VirtualHost *:80> ServerName client.local DocumentRoot /var/www/yii2-angular/client ErrorLog /var/www/yii2-angular/logs/error.log CustomLog /var/www/yii2-angular/logs/access.log </VirtualHost> <VirtualHost *:80> ServerName server.local DocumentRoot /var/www/yii2-angular/server/web ErrorLog… Читать далее »

Yii2: Простое приложение c AngularJS фронтендом. Введение

В далекие времена веб 1.0 одностраничные веб-приложения (Single Page Application) были как мамонты: редкие и, зачастую, построенные на костылях с большим количеством разной степени структурированности js кода. В наше время 2.0 существуют и успешно развиваются не только серверные, но и клиентские фреймворки и библиотеки: JQuery, Backbone.js, Ember.js, CanJS, AngularJS, KnockoutJS. По сути, разделение приложения на серверную и клиентскую части, в большинстве случаев оправдывается снижением… Читать далее »

Запись открытой лекции по Yii 2

Открытую лекцию провел Павел Климов, один из четырех основных разработчиков фреймворка yii2. За сорок минут Павел подробно и, в тоже время, просто рассказал о структуре приложения, архитектуре mvc в Yii 2.0, об управлении asset‘ами, Active Record‘е, обработке событий и поведениях, а так же, о стандартных расширениях yii2. Видео будет полезно всем начинающим и не очень программистам.

Yii2: релиз 2.0.3 по расписанию

Как по часам, вышел очередной стабильный релиз замечательного php-фреймворка Yii 2. Версия 2.0.3 является патч-релизом и содержит около 50 улучшений и исправлений ошибок. Полный перечень изменений можно найти здесь. По доброй традиции, над улучшениями и исправления трудилось большое количество участников сообщества. Отдельно хочу отметить, что документация не отстает от самого фреймворка и активно дописывается и переводится на большое количество языков…. Читать далее »

Yii2: защита текстов блога от копипаста

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

Yii2: Шифрование Openssl

Если вам понадобилось использовать openssl шифрование в yii 2.0 приложении, можно использовать готовое расширение nickcv/yii2-encrypter. В данном расширении реализовано двухстороннее AES шифрование с ключом 128 или 256 бит. Также, расширение позволяет кодировать зашифрованные данные в base64, что дает возможность хранить их в виде строк. Следует помнить, что кодирование base64 увеличивает объем данных примерно на одну треть.

Yii2: Как минифицировать jquery и bootstrap

По-умолчанию, в php-фреймворке yii 2.0, используются полные версии файлов библиотек jquery и bootstrap. Однако, это оправданно только при разработке и отладке приложения. Поэтому было бы разумно автоматизировать подключение разных вариантов библиотек в разработке и в продакшене.

Yii2: сервер очередей beanstalk

Серверы очередей заданий — это очень популярный инструмент, одним из применений которого является использование его как буфера между ядром бизнес-приложения и сервисом почтовых рассылок. Сервер очередей beanstalk написан на c и имеет отличные показатели стабильности, масштабируемости и быстродействия.

Yii2: простой чат

Расширение sintret/yii2-chat-adminlte позволяет быстро добавить в yii2 приложение простой чат. Установка Подключаем расширение yii2 Для установки расширения yii2-chat-adminlte используем composer — добавляем в composer.json строку «sintret/yii2-chat-adminlte»: «dev-master» и выполняем composer update.

Yii2: индикатор загрузки showloading

Зачастую, при использовании технологии ajax, возникают задержки загрузки содержимого. В таких случаях удобно использовать индикаторы загрузки.

Yii2: Giiant — шаблоны генератора gii

Вторая версия php-фреймворка yii, как и первая, включают в себя генератор кода gii. Этот генератор способен создавать рабочие модели, контроллеры и представления для crud (создания, просмотра, изменения и удаления записей) функционала, на основе структуры базы данных, а так же заготовки модулей и контроллеров, дабы помочь разработчику.