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

 

Keep calm and follow PHP PSR

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

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

 

Обработка ошибок в Yii 2

Обработчик ошибок включен в Yii 2 по умолчанию. Отключить его можно добавив следующий код в стартовый скрипт приложения web/index.php:

Конфигурация по умолчанию

В шаблонах приложений Yii 2 basic и advanced обработчик ошибок подключен как компонент приложения errorHandler. Рассмотрим примеры конфигурации:

  • приложение basic: config/web.php;
  • приложение advanced: индивидуальные настройки для каждого из приложений frontend/config/main.php и backend/config/main.php.

Читать далее Yii2: Обработка ошибок

PHP PDO — работаем с базами данных правильно

PHP PDO Основы

Термин PDO является сокращением понятия PHP Data Objects. Как можно судить по названию, эта технология позволяет работать с содержимым базы данных через объекты. Читать далее PHP PDO — работаем с базами данных правильно

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

yii2 formatter icu

Столкнулся с проблемой, при выводе времени, yii\i18n\Formatter формирует для зоны 'Europe/Moscow' время, соответствующее GMT+4:

выводил :

В конфиге приложения временная зона указана явно: 'timeZone' => 'Asia/Omsk'. Читать далее Обновление ICU на CentOS/Red Hat/Fedora

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

yii2 session flash

Использование сессий — это хороший способ сохранять информацию между визитами пользователя на сайт. Изначально, в php, работа с сессиями ведется через глобальный массив $_SESSION. Для удобства работы, экземпляр приложения yii2 содержит компонент yii\web\Session, доступный через Yii::$app->session.

Открытие и закрытие сессий

Простой код, иллюстрирующий работу с сессиями.

Читать далее Yii2: Разбираемся с сессиями

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

Yii2: Выпадающий список DropDownListПри создании пользовательских интерфейсов, кроме текстовых полей, часто используются выпадающие списки — Drop-Down List. Этот элемент позволяет ограничить пользователя выбором одного или нескольких вариантов из предложенного списка.

Виджет yii\widgets\ActiveField  уже содержит метод dropDownList( $items, $options = [] ) , являющийся оберткой для yii\helpers\BaseHtml::activeDropDownList( $model, $attribute, $items, $options = [] )  отрисовывающего выпадающий список, используя html тег select . Читать далее Yii2: Выпадающий список DropDownList

Yii2: поля ActiveForm

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

Сегодня рассмотрим использование yii\bootstrap\ActiveForm  в деталях. Наглядным примером послужит демонстрация и исходные коды (модуль simpleactiveform). Читать далее Yii2: поля ActiveForm

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

Картинка в gridview yii2

Специально для данной заметки, я подготовил пример использованием разных параметров GridView. Исходники модуля и всего приложения, доступны на битбакете.

За основу взять код, полученный при помощи генератора Gii. Типичный код GridView после автоматической генерации:

Читать далее Yii2: Разбираемся с GridView

Добавляем свободное место с lvm на CentOS

Добавляем свободное место с lvm на CentOSВ моем случае, добавить свободное место понадобилось на виртуальной машине с asterisk под hyper-v. Средствами hyper-v можно легко увеличить размер виртуального жесткого диска, но в lvm linux место само собой не добавится. Оставлю здесь простую инструкцию, как увеличить количество свободного места. Может кому еще пригодится.

Обстановка

Размер виртуального диска — 10 Гб. А linux видит только 4. Читать далее Добавляем свободное место с lvm на CentOS

Yii2: Вникаем в Pjax

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

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

На данный момент мы имеем готовое RESTful api приложение в серверной части и простое AngularJS приложение в клиентской части. Дело за малым, обеспечить связь второго с данными из первого.

Доработаем главный модуль app.js

Добавим описание модуля, обеспечивающего работу с данными о фильмах, yii2AngApp.film:

Читать далее Yii2: Простое приложение c AngularJS фронтендом. Клиентская часть 2

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

Ну что же, серверная часть готова, самое время взяться за клиентскую.

Пользовательский интерфейс мы создадим используя js фреймворк angelarjs (функционал) и css фреймворк twitter bootstrap (интерфейс).

Одностраничное приложение

Вся работа с клиентской частью приложения будет осуществляться через уже созданный нами файл client/index.html, который нам и отдает веб-сервер при открытии http://client.local.

Описание приложения AngularJS

Добавим атрибут  ng-app тегу  html. Назовем наше приложение yii2AngApp.

Читать далее Yii2: Простое приложение c AngularJS фронтендом. Клиентская часть 1

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

Теперь, когда все подготовительные работы закончены, можно всерьез заняться нашим приложением. PHP фреймворк Yii 2.0 позволяет быстро и просто создать необходимый нам функционал, включая RESTful api.

Забыл сказать, в этом учебном приложении мы реализуем простой каталог фильмов. Данные каталога будем хранить в базе данных mysql.

Структура базы данных

Создадим базу данных yii2-ang и добавим в нее таблицу film со следующей структурой:

  • id — int(11)
  • title — varchar(255)
  • storyline — text
  • director — varchar(100)
  • year — int(4)

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

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

Для начала, подготовим рабочее окружение, скачаем все необходимые библиотеки и создадим шаблоны будущих приложений. Будем считать, что у нас есть 2 домена: client.local и server.local. Создадим для них корневые соответствующие корневые каталоги: client и server. И настроим наш веб-сервер. Примерная конфигурации для apache:

В дальнейшем будем работать с этими каталогами по отдельности. Читать далее Yii2: Простое приложение c AngularJS фронтендом. Подготовка

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

angularjs yii2В далекие времена веб 1.0 одностраничные веб-приложения (Single Page Application) были как мамонты: редкие и, зачастую, построенные на костылях с большим количеством разной степени структурированности js кода.

В наше время 2.0 существуют и успешно развиваются не только серверные, но и клиентские фреймворки и библиотеки: JQuery, Backbone.jsEmber.jsCanJSAngularJSKnockoutJS.

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

В нескольких статьях, постараемся разобраться, как за несколько минут создать простое одностраничное приложение, используя AngularJs и Yii Framework 2.0. Читать далее Yii2: Простое приложение c AngularJS фронтендом. Введение

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

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

Открытую лекцию провел Павел Климов, один из четырех основных разработчиков фреймворка yii2.

За сорок минут Павел подробно и, в тоже время, просто рассказал о структуре приложения, архитектуре mvc в Yii 2.0, об управлении asset‘ами, Active Record‘е, обработке событий и поведениях, а так же, о стандартных расширениях yii2.

Видео будет полезно всем начинающим и не очень программистам.

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

Таблица символов ASCII

Таблица asciiНабор символов ASCII (American standard code for information interchange) — таблица, в которой некоторым символам сопоставлены определенные машинные коды. Данная таблица была стандартизирована в 1963 в США. Американцы, чаще всего, произносят название как эски, а европейцы и русские предпочитают говорить аски.

Символы в таблице хранятся в виде семи-битного числа, соответственно, изначальный размер таблицы составлял 128 символов. В связи с тем, что современные компьютеры, оперируют восьми-битными байтами, таблица позже была расширена до 256 символов и стала включать национальные символы. Читать далее Таблица символов ASCII

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

Yii 2.0.3 release новый релизКак по часам, вышел очередной стабильный релиз замечательного php-фреймворка Yii 2.

Версия 2.0.3 является патч-релизом и содержит около 50 улучшений и исправлений ошибок. Полный перечень изменений можно найти здесь. По доброй традиции, над улучшениями и исправления трудилось большое количество участников сообщества.

Отдельно хочу отметить, что документация не отстает от самого фреймворка и активно дописывается и переводится на большое количество языков.

Поддержать проект можно присоединившись к сообществу:

Рассмотрим некоторые из улучшений в этом релизе. Читать далее Yii2: релиз 2.0.3 по расписанию

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

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

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

yii2 шифрование aes opensslЕсли вам понадобилось использовать openssl шифрование в yii 2.0 приложении, можно использовать готовое расширение nickcv/yii2-encrypter.

В данном расширении реализовано двухстороннее AES шифрование с ключом 128 или 256 бит.

Также, расширение позволяет кодировать зашифрованные данные в base64, что дает возможность хранить их в виде строк. Следует помнить, что кодирование base64 увеличивает объем данных примерно на одну треть. Читать далее Yii2: Шифрование Openssl

Советы и трюки по работе с linux, web и многое другое. Только уникальные материалы!