Composer + Yii + Imagine: небольшое приложение для загрузки картинок
Совсем недавно фреймворк Yii включили в репозиторий packagist.org. Новость очень хорошая, т.к. теперь можно использовать один менеджер зависимостей Composer для обновления и фреймворка, и дополнительных библиотек.
В этой статье мы рассмотрим пример создания несложного приложения на основе Yii, которое позволит загружать картинки и автоматически создавать их миниатюры. Задача тривиальная, но мне хотелось показать подключение дополнительных библиотек с помощью Composer, а в packagist как раз входит Imagine (очень удобная библиотека для работы с изображениями).
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (6) »
PHP: как убрать комментарии из html разметки
Прежде всего, несколько пояснений. Допустим, у вас есть html страница с комментариями, которые вы не хотите показывать посетителям сайта. Как их убрать? Естественно, это можно сделать с помощью любого текстового редактора
Но это не самый лучший вариант
HTML комментарии помогают читать разметку во время разработки, особенно если макет страницы разбит на несколько частей. Т.е. открывающий тег может находиться в одном файле, а закрывающий – в другом. В таких случаях комментарий около закрывающего тега может действительно сэкономить ваше время.
С другой стороны, наличие таких комментариев в разметке хоть и немного, но увеличивает размер страницы, да показывать их посетителям как-то неправильно.
Читать дальше »
Опубликовано в HTML, PHP, Web разработка, WordPress, Yii | Комментарии (10) »
EximusCommerce: платформа для интернет магазинов на Yii фреймворке

В этой статье речь пойдет о новом проекте, написанном на основе фреймворка Yii, и предназначенной для создания интернет-магазинов. Вообще очень приятно видеть, что фреймворк набирает популярность и используется для создания коммерческих продуктов. Чем больше разработчиков будет с ним работать, тем лучше будет становиться сам фреймворк.
Но вернёмся к теме статьи. Называется система – EximusCommerce. Ориентирована она на решение конкретной задачи – создание интернет-магазинов. Т.е. использовать её в качестве замены какой-нибудь CMS не получится, но за счёт этого система работает быстрее и интерфейс не будет проще.
Рассмотрим основные моменты работы с EximusCommerce.
Читать дальше »
Опубликовано в Yii, Разное | Комментарии (17) »
Yii фреймворк: создание XML-RPC сервера

На мой взгляд, XML-RPC протокол является одним из наиболее удобных способов передачи данных между Интернет-ресурсами. Можно, конечно, поспорить, но на изучение XML-RPC требуется минимальное количество времени, есть множество готовых библиотек, да и используется он очень широко. Поэтому я никогда не понимал, почему разработчики отличного фреймворка Yii решили не включать библиотеку для работы с XML-RPC в дистрибутив. Хотя, возможно, это вопрос времени
Тем не менее, работать нужно уже сейчас, и в этой статье мы разберём, как решить проблему с помощью сторонних библиотек.
Примечание. Если вас интересует создание XML-RPC клиента, почитайте статью XML-RPC и Yii фреймворк.
Немного теории.
Мы можем использовать два основных подхода при создании XML-RPC сервера.
1) Отдельный скрипт. В этом случае создаём файл с именем вроде xmlrpc.php и помещаем его в корень сайта. В нём будет находиться код обработки XML-RPC запросов. Такой подход используется, например, в WordPress. Достоинство в том, что вам не нужно вносить никаких изменений в код вашего проекта, т.е. XML-RPC интерфейс получается независимым. С другой стороны, независимость приводит к тому, что вам будет гораздо сложнее работать со встроенными библиотеками фреймворка.
2) Использование действий контроллера. Этот вариант гораздо интереснее. Во-первых, вы автоматически получаете доступ ко всем возможностям Yii. Во-вторых, в этом случае XML-RPC методы можно разделить по модулям. Т.е. подключение / отключение модуля будет автоматически подключать / отключать соответствующие XML-RPC методы.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (7) »
Как «подружить» сервис Loginza и фреймворк Yii

Постоянные читатели этого блога, наверное, помнят, что и о фреймворке Yii, и о сервисе аутентификации Loginza я раньше рассказывал. Найти эти статьи несложно: Yii, Loginza.
Но в статье о Loginza, речь шла о протоколе обмена данными с сервисом, а вопрос аутентификации остался «за бортом». Я, конечно, объяснил когда нужно создавать сессию, но на практике этого явно недостаточно
В этой статье я постараюсь исправить этот недостаток и покажу пример аутентификации пользователя с помощью сервиса Loginza.
Прежде всего, определим требования к такой системе.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (49) »
Yii фреймворк: установка дефолтных параметров для виджетов

Сегодня хочу показать небольшую особенность, которую нужно учитывать при разработке виджетов для фреймворка Yii.
В большинстве случаев, виджеты состоят из файла самого виджета и файла с представлением.
Например, у нас есть файлы.
protected/components/MyWidget.php – класс виджета
и
protected/components/views/myWidget.php – представление.
Класс виджета может выглядеть примерно так.
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (21) »
Yii PHP framework: контроль доступа с использованием ролей (RBAC)

Я думаю, все, кто хоть немного работал с фреймворком Yii знают, что он поддерживает возможность разграничения прав доступа на основе ролей.
Принцип работы этой системы достаточно прост. Вы создаёте наборы правил и пользователей, связываете их между собой. После этого, вы в любой момент можете проверить, имеет ли пользователь право на выполнение какой-то операции или нет.
Одно из основных преимуществ использования данной библиотеки заключается в том, что вам нужно написать минимум кода для проверки прав доступа. Обычно этот код выглядит следующим образом.
if (!Yii::app()->user->checkAccess('createUser')) {
throw new CHttpException(403, 'Forbidden');
}
//остальной код…
В теории всё просто. Но на практике, документации и примеров по этой теме практически нет (надеюсь, это скоро изменится).
Основные источники информации (на русском): Аутентификация и авторизация и RBAC и описание ролей в файле. На английском хороших и подробных примеров, к сожалению, я не нашел.
Примечание. Очень советую прочитать эти статьи, прежде чем переходить к моему примеру.
Когда я первый раз решил использовать RBAC, то выяснилось, что есть множество нюансов, которые приходится учитывать при работе с этой библиотекой. Ничего запредельно сложного и недоступного для понимания, но «ковырялся» я довольно долго ![]()
Читать дальше »
Опубликовано в PHP, Web разработка, Yii | Комментарии (63) »
CGridView. Часть вторая. AJAX.

В этой части я хочу рассказать о некоторых особенностях реализации AJAX запросов в компоненте CGridView.
Предположим, у нас есть таблица, и мы создали для неё модель и скрипты для выполнения CRUD операций (с помощью встроенного генератора Yii).
Пусть таблица называется countries, содержит список стран с двумя полями (id, name).
В этом случае, страница управления записями будет доступна адресу
Читать дальше »
Опубликовано в Ajax, PHP, Web разработка, Yii | Комментарии (36) »
Yii PHP фреймворк: оформление административных страниц

Одной из наиболее мощных возможностей фреймворка Yii является генерация кода. Она позволяет сразу после создания таблицы в базе данных получить файлы модели, контроллера и представлений. Т.е. весь необходимый код для выполнения CRUD операций.
Но, естественно, код формируется по стандартному шаблону, дизайн которого вам, возможно, захочется изменить.
Взгляните на обычную страницу управления записями, сформированную с помощью компонента CGridView.
Читать дальше »
Опубликовано в HTML, PHP, Web разработка, Yii | Комментарии (26) »
Yii PHP framework: создание запросов с условием IN

Последнее время мне довольно часто приходится работать с фреймворком Yii. И иногда возникают вопросы, ответы на которые не очевидны (во всяком случае для меня).
Попробую объяснить. Сам фреймворк, на мой взгляд, достаточно удобный и документация подробная. Но классов много, и формат передачи данных их методам часто сильно влияет на результат.
Рассмотрим небольшой пример – использование оператора IN.
Т.е. нужно сформировать примерно такой запрос.
SELECT * FROM tbl_users WHERE id IN (1, 2, 3)
Опубликовано в MySQL, PHP, Web разработка, Yii | Комментарии (16) »





