Архив автора: nix

Node.js: Погружение в цикл событий

Node.js является событийно-ориентированной системой. Другими словами, все, что происходит в ноде, является реакцией на события и события вызывают каскад колбеков. Этот механизм работает на основе библиотеки libuv и называется циклом событий (event loop).   Есть популярное мнение, что цикл событий является одним из самых «недопонимаемых» принципов платформы (Node.js).

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

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

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

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

Конфигурация по умолчанию В шаблонах приложений Yii 2 basic и advanced обработчик ошибок подключен как компонент приложения errorHandler. Рассмотрим примеры конфигурации: приложение basic: config/web.php; приложение advanced: индивидуальные настройки для каждого из приложений frontend/config/main.php и backend/config/main.php.

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

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

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

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

выводил :

В конфиге приложения временная зона указана явно: 'timeZone' => 'Asia/Omsk'.

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

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

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 после автоматической генерации:

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

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

Yii2: Вникаем в Pjax

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

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

На данный момент мы имеем готовое RESTful api приложение в серверной части и простое AngularJS приложение в клиентской части. Дело за малым, обеспечить связь второго с данными из первого. Доработаем главный модуль app.js Добавим описание модуля, обеспечивающего работу с данными о фильмах, yii2AngApp.film:

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

Ну что же, серверная часть готова, самое время взяться за клиентскую. Пользовательский интерфейс мы создадим используя js фреймворк angelarjs (функционал) и css фреймворк twitter bootstrap (интерфейс). Одностраничное приложение Вся работа с клиентской частью приложения будет осуществляться через уже созданный нами файл client/index.html, который нам и отдает веб-сервер при открытии http://client.local. Описание приложения AngularJS Добавим атрибут  ng-app тегу  html. Назовем наше приложение yii2AngApp.

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:

В дальнейшем будем работать с этими каталогами по отдельности.

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. Видео будет полезно всем начинающим и не очень программистам.

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

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

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

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

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

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