Категории: Yii

Personal Maps: локализация и интернационализация. Часть 10

Владимир | | AngularJS, JavaScript, PHP, Web разработка, Yii.

personal maps i18n

Приветствую! Это заключительная статья цикла о разработке web приложения с использованием фреймворков Yii и AngularJS. На данный момент у нас есть полностью работающее приложение, и остаётся добавить возможность перевода интерфейса на разные языки.

Примечание. Ссылки на все предыдущие статьи вы найдёте в конце этой страницы.

Вообще создание многоязычного интерфейса – задача довольно тривиальная. В большинство фреймворков (и Yii здесь не исключение) входят соответствующие библиотеки. Но в нашем случае ситуация немного сложнее из-за того, что приложение состоит из клиентской и серверной частей. При этом для обоих фреймворков (Yii и AngularJS) есть собственные средства для работы с переводами.
Читать дальше

Personal Maps: авторизация и аутентификация (с использованием Yii RBAC). Часть 9.

Владимир | | PHP, Web разработка, Yii.

personal maps rbac

В предыдущих статьях этого цикла мы практически завершили создание нашего web приложения (ссылки на предыдущие статьи вы найдёте внизу этой страницы). Мы можем создавать и редактировать объекты, отображать их на карте. Но для полноценной работы приложения нам необходимо создавать пользователей с различными уровнями доступа, а также проверять их права при обращении к приложению.

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

Предполагается, что каждый пользователь будет только со своими объектами, то нам будет достаточно двух уровней доступа:

  • user – обычный пользователь, может работать только со своими объектами;
  • admin – администратор, может работать со своими объектами, а также создавать, изменять и удалять других пользователей.

Т.е. администратор имеет те же самые права, что и обычный пользователь, плюс несколько дополнительных. Реализовать такую систему разграничения доступа удобнее всего с помощью RBAC (Role Based — Управление доступом на основе ролей).
Читать дальше

Personal maps: REST интерфейс. Часть 8.

Владимир | | Ajax, AngularJS, PHP, Web разработка, Yii.

personal maps rest api

Приветствую, это очередная статья о разработке web приложения с использованием под названием Personal maps. В прошлый раз мы закончили разработку клиентской части приложения, а сегодня займемся созданием REST интерфейса. Ссылки на все предыдущие части вы найдёте внизу этой страницы.

Форматы запросов клиентской части к серверу и его ответов у нас уже определены. Фактически мы это сделали когда тестировали сервис Places. Теперь нам нужно реализовать поддержку этих запросов серверной частью приложения.

Создание REST сервисов с помощью Yii фреймворка

Примечание. Если вы не знакомы с общими принципами создания REST сервисов, то рекомендую прочитать статью Create a REST API with PHP.

Также напоминаю, что исходный код приложения размещён на GitHub и доступна демоверсия приложения.
Читать дальше

Personal Maps: главная страница и структура клиентской части приложения. Часть 3.

Владимир | | Ajax, AngularJS, HTML, JavaScript, PHP, Web разработка, Yii.

personal_maps_logo_3

В этой части мы начнём разрабатывать клиентскую часть приложения.

Фактически это будет одностраничное приложение, которое получает и передаёт данные с помощью REST сервисов. Основное преимущество такого подхода заключается в том, что при работе пользователя не происходит перезагрузки страницы. Если сервер окажется недоступен, пользователь увидит сообщение об ошибке и сможет продолжить работу, когда связь восстановится.

Кроме того, наше приложение показывает объекты на карте Google, и если его разрабатывать в «классическом» стиле, то переход от одного объекта к другому будет вызывать перезагрузку карты. А это, не смотря на кэширование компонентов карты браузером, негативно скажется на скорости работы интерфейса.

Читать дальше

Personal Maps: Устанавливаем и настраиваем Yii, проектируем структуру базы данных. Часть 2.

Владимир | | AngularJS, MySQL, PHP, Web разработка, Yii.

personal_maps_logo_2

Это вторая часть из серии статей о создании web приложения с использованием фреймворков Yii и AngularJS. В ней мы рассмотрим:

  • установку и предварительную настройку Yii;
  • подключение расширения Yiistrap;
  • структуру базы данных;
  • создание миграций.

Примечание. Вы можете получить исходный код на GitHub, а также поэкспериментировать с демо-версией.

Source

Demo
Читать дальше

Composer + Yii + Imagine: небольшое приложение для загрузки картинок

Владимир | | PHP, Web разработка, Yii.

yii composer

Совсем недавно фреймворк Yii включили в репозиторий packagist.org. Новость очень хорошая, т.к. теперь можно использовать один менеджер зависимостей Composer для обновления и фреймворка, и дополнительных библиотек.

В этой статье мы рассмотрим пример создания несложного приложения на основе Yii, которое позволит загружать картинки и автоматически создавать их миниатюры. Задача тривиальная, но мне хотелось показать подключение дополнительных библиотек с помощью Composer, а в packagist как раз входит Imagine (очень удобная библиотека для работы с изображениями).
Читать дальше

PHP: как убрать комментарии из html разметки

Владимир | | HTML, PHP, Web разработка, WordPress, Yii.

remove html comments

Прежде всего, несколько пояснений. Допустим, у вас есть html страница с комментариями, которые вы не хотите показывать посетителям сайта. Как их убрать? Естественно, это можно сделать с помощью любого текстового редактора :) Но это не самый лучший вариант ;)

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

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

EximusCommerce: платформа для интернет магазинов на Yii фреймворке

Владимир | | Yii, Разное.

В этой статье речь пойдет о новом проекте, написанном на основе фреймворка Yii, и предназначенной для создания интернет-магазинов. Вообще очень приятно видеть, что фреймворк набирает популярность и используется для создания коммерческих продуктов. Чем больше разработчиков будет с ним работать, тем лучше будет становиться сам фреймворк.

Но вернёмся к теме статьи. Называется система – EximusCommerce. Ориентирована она на решение конкретной задачи – создание интернет-магазинов. Т.е. использовать её в качестве замены какой-нибудь CMS не получится, но за счёт этого система работает быстрее и интерфейс не будет проще.

Рассмотрим основные моменты работы с EximusCommerce.
Читать дальше

Yii фреймворк: создание XML-RPC сервера

Владимир | | PHP, Web разработка, Yii.

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 методы.
Читать дальше

Как «подружить» сервис Loginza и фреймворк Yii

Владимир | | PHP, Web разработка, Yii.

loginza yii

Постоянные читатели этого блога, наверное, помнят, что и о фреймворке Yii, и о сервисе аутентификации Loginza я раньше рассказывал. Найти эти статьи несложно: Yii, Loginza.

Но в статье о Loginza, речь шла о протоколе обмена данными с сервисом, а вопрос аутентификации остался «за бортом». Я, конечно, объяснил когда нужно создавать сессию, но на практике этого явно недостаточно ;)

В этой статье я постараюсь исправить этот недостаток и покажу пример аутентификации пользователя с помощью сервиса Loginza.

Прежде всего, определим требования к такой системе.
Читать дальше