Константы В языке Go, термин константа используется для представления постоянных, неизменяемых значений, таких как 4, 1.23, true, «Привет» и так далее. Литералы являются константами Литерал — лексема, которая непосредственно представляет некоторое значение [ГОСТ 28397-89] Все литералы в Go, будь то целочисленный литерал, например 2 или 2000, литерал с плавающей точкой, например 2.34, 1.78, логический литерал, например true и false или строковые литералы, например «Привет» и… Читать далее »
«Хеллоуворлд» является классическим примером первого приложения на новом языке программирования. Рассмотрим пример такого приложения на языке Go. Для начала достаточно любого текстового редактора и установленного в системе Golang. Единственным файлом, содержащим весь код нашей программы является hello.go : // «Хэллоуворлд» на Golang package main import «github.com/common-nighthawk/go-figure» func main() { myFigure := figure.NewFigure(«Hello, World!», «univers», true) myFigure.Print() } Запустить этот код можно… Читать далее »
Node.js является событийно-ориентированной системой. Другими словами, все, что происходит в ноде, является реакцией на события и события вызывают каскад колбеков. Этот механизм работает на основе библиотеки libuv и называется циклом событий (event loop). Есть популярное мнение, что цикл событий является одним из самых «недопонимаемых» принципов платформы (Node.js).
При разработке приложений на Yii 2 полезно придерживаться стиля кода его разработчиков. Если, конечно, у вас нет своего устоявшегося стиля, соответствующего современному PHP и PSR.
Обработчик ошибок включен в 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.
Термин PDO является сокращением понятия PHP Data Objects. Как можно судить по названию, эта технология позволяет работать с содержимым базы данных через объекты.
Столкнулся с проблемой, при выводе времени, 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’.
Использование сессий — это хороший способ сохранять информацию между визитами пользователя на сайт. Изначально, в php, работа с сессиями ведется через глобальный массив $_SESSION. Для удобства работы, экземпляр приложения yii2 содержит компонент yii\web\Session, доступный через Yii::$app->session. Открытие и закрытие сессий Простой код, иллюстрирующий работу с сессиями. $session = Yii::$app->session; // проверяем наличие открытой сессии if ($session->isActive) … // открываем сессию $session->open(); //… Читать далее »
При создании пользовательских интерфейсов, кроме текстовых полей, часто используются выпадающие списки — Drop-Down List. Этот элемент позволяет ограничить пользователя выбором одного или нескольких вариантов из предложенного списка. Виджет yii\widgets\ActiveField уже содержит метод dropDownList( $items, $options = [] ) , являющийся оберткой для yii\helpers\BaseHtml::activeDropDownList( $model, $attribute, $items, $options = [] ) отрисовывающего выпадающий список, используя html тег select .
Наверняка, одними из самых часто используемых вами yii2 виджетов станут yii\widgets\ActiveForm и его улучшенная Bootstrap 3 версия — yii\bootstrap\ActiveForm. Сегодня рассмотрим использование yii\bootstrap\ActiveForm в деталях. Наглядным примером послужит демонстрация и исходные коды (модуль simpleactiveform).
Специально для данной заметки, я подготовил пример использованием разных параметров 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’], ], ]); ?>
Популярный ныне js фреймворк jQuery оброс большим количеством разнообразных плагинов. Одним из таких плагинов является pjax, позволяющий легко создавать веб приложения с использованием связки ajax и pushState. Эта технология позволяет после нажатия ссылки или submit на форме, отправить на сервер специальный запрос и получить в ответ только то содержимое, которое необходимо обновить на странице, затем pjax заменяет старое содержимое новым и добавляет… Читать далее »
Теперь, когда все подготовительные работы закончены, можно всерьез заняться нашим приложением. PHP фреймворк Yii 2.0 позволяет быстро и просто создать необходимый нам функционал, включая RESTful api. Забыл сказать, в этом учебном приложении мы реализуем простой каталог фильмов. Данные каталога будем хранить в базе данных mysql. Структура базы данных Создадим базу данных yii2-ang и добавим в нее таблицу film со следующей структурой: id… Читать далее »
Для начала, подготовим рабочее окружение, скачаем все необходимые библиотеки и создадим шаблоны будущих приложений. Будем считать, что у нас есть 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… Читать далее »
В далекие времена веб 1.0 одностраничные веб-приложения (Single Page Application) были как мамонты: редкие и, зачастую, построенные на костылях с большим количеством разной степени структурированности js кода. В наше время 2.0 существуют и успешно развиваются не только серверные, но и клиентские фреймворки и библиотеки: JQuery, Backbone.js, Ember.js, CanJS, AngularJS, KnockoutJS. По сути, разделение приложения на серверную и клиентскую части, в большинстве случаев оправдывается снижением… Читать далее »
Открытую лекцию провел Павел Климов, один из четырех основных разработчиков фреймворка yii2. За сорок минут Павел подробно и, в тоже время, просто рассказал о структуре приложения, архитектуре mvc в Yii 2.0, об управлении asset‘ами, Active Record‘е, обработке событий и поведениях, а так же, о стандартных расширениях yii2. Видео будет полезно всем начинающим и не очень программистам.
Как по часам, вышел очередной стабильный релиз замечательного php-фреймворка Yii 2. Версия 2.0.3 является патч-релизом и содержит около 50 улучшений и исправлений ошибок. Полный перечень изменений можно найти здесь. По доброй традиции, над улучшениями и исправления трудилось большое количество участников сообщества. Отдельно хочу отметить, что документация не отстает от самого фреймворка и активно дописывается и переводится на большое количество языков…. Читать далее »
Глобальная сеть призвана нести информацию в массы. Но на данном этапе развития сети Интернет, количество сайтов, содержащих материалы других авторов, со ссылкой на автора и оригинал или без нее, многократно превышает количество сайтов с уникальными авторскими статьями, описанием собственных разработок и другими полезными материалами. А все потому, что копипаст чужих материалов может приносить не маленький доход, при должном подходе.
Если вам понадобилось использовать openssl шифрование в yii 2.0 приложении, можно использовать готовое расширение nickcv/yii2-encrypter. В данном расширении реализовано двухстороннее AES шифрование с ключом 128 или 256 бит. Также, расширение позволяет кодировать зашифрованные данные в base64, что дает возможность хранить их в виде строк. Следует помнить, что кодирование base64 увеличивает объем данных примерно на одну треть.
По-умолчанию, в php-фреймворке yii 2.0, используются полные версии файлов библиотек jquery и bootstrap. Однако, это оправданно только при разработке и отладке приложения. Поэтому было бы разумно автоматизировать подключение разных вариантов библиотек в разработке и в продакшене.