Управление версиями Java в Ubuntu
Для переключения между установленными версиями Java под Ubuntu удобно использовать утилиту update-java-alternatives. Подробнее под катом.
Для переключения между установленными версиями Java под Ubuntu удобно использовать утилиту update-java-alternatives. Подробнее под катом.
Константы В языке 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’], ], ]); ?>
В моем случае, добавить свободное место понадобилось на виртуальной машине с asterisk под hyper-v. Средствами hyper-v можно легко увеличить размер виртуального жесткого диска, но в lvm linux место само собой не добавится. Оставлю здесь простую инструкцию, как увеличить количество свободного места. Может кому еще пригодится. Обстановка Размер виртуального диска — 10 Гб. А linux видит только 4.
Популярный ныне js фреймворк jQuery оброс большим количеством разнообразных плагинов. Одним из таких плагинов является pjax, позволяющий легко создавать веб приложения с использованием связки ajax и pushState. Эта технология позволяет после нажатия ссылки или submit на форме, отправить на сервер специальный запрос и получить в ответ только то содержимое, которое необходимо обновить на странице, затем pjax заменяет старое содержимое новым и добавляет… Читать далее »
На данный момент мы имеем готовое RESTful api приложение в серверной части и простое AngularJS приложение в клиентской части. Дело за малым, обеспечить связь второго с данными из первого. Доработаем главный модуль app.js Добавим описание модуля, обеспечивающего работу с данными о фильмах, yii2AngApp.film: … var yii2AngApp = angular.module(‘yii2AngApp’, [ ‘ngRoute’, ‘yii2AngApp.site’, ‘yii2AngApp.film’ ]); // рабочий модуль var yii2AngApp_site = angular.module(‘yii2AngApp.site’,… Читать далее »
Ну что же, серверная часть готова, самое время взяться за клиентскую. Пользовательский интерфейс мы создадим используя js фреймворк angelarjs (функционал) и css фреймворк twitter bootstrap (интерфейс). Одностраничное приложение Вся работа с клиентской частью приложения будет осуществляться через уже созданный нами файл client/index.html, который нам и отдает веб-сервер при открытии http://client.local. Описание приложения AngularJS Добавим атрибут ng-app тегу html. Назовем наше приложение yii2AngApp. <!DOCTYPE… Читать далее »
Теперь, когда все подготовительные работы закончены, можно всерьез заняться нашим приложением. 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. Видео будет полезно всем начинающим и не очень программистам.