Как стать автором
Обновить
0

Yii *

Фреймворк, реализующий парадигму MVC

Сначала показывать
Порог рейтинга
Уровень сложности

Yii 1.1.10

Время на прочтение1 мин
Количество просмотров1K
Вышел релиз 1.1.10 PHP фреймворка Yii. В данной версии, в основном, исправлены ошибки в CActiveForm, CJuiDatePicker и невозможность запуска с yiilite.php.

Схема обработки ошибок в Yii

Время на прочтение4 мин
Количество просмотров34K
Всем привет!
Процесс обработки ошибок в Yii был для меня не совсем прозрачным с первых дней использования этого фреймворка. Даже несмотря на наличие в документации специального раздела Error Handling. В каких случаях какие view используются, как влияет ajax или debug-режим, зачем нужен errorAction, в чем отличия при обработке исключений?
В итоге после копания в документации и исходном коде фреймворка я нарисовал наглядную схему обработки ошибок, которая лично для меня оказалась весьма полезной и наверняка пригодится кому-то еще.
Под катом собственно схема и некоторые комментарии к ней.
Читать дальше →

Простая реализация Restful для Yii

Время на прочтение4 мин
Количество просмотров12K
Введение

Решился я на медни написать расширение google chrome для проекта компании в которой работаю. Расширение и сам проект посвящен авто тематики. В процессе написания меня раздражала серверная часть которая отдавало расширению готовые данные разметку и стили, а хотелось json. На глаза попалась статья о restful и решил написать сервеную часть на restful архитектуре.
Наш проект реализован на нативном php без использования каких либо фреймворков. Написал простой класс реализующий нужные феньки, но на этом не смог остановится, так как я поклонник yii решил реализовать сие и для него. Сторонние разработки посмотрел, но хотелось своего, к тому же мной написанный класс нормально справлялся с возложенными на него задачами. Адаптированный мой класс для yii показал коллегам, рассказав что да как им понравилось. Но тут меня понесло, хотелось еще проще.
Читать дальше →

Yii 1.1.9

Время на прочтение2 мин
Количество просмотров2.6K
Вышла стабильная версия PHP-фреймворка Yii с номером 1.1.9. В данном релизе около 60 улучшений и исправленных ошибок.

Полный список изменений можно посмотреть в соответствующем файле. Перед обновлением с более ранних версий важно ознакомиться с инструкциями.

Русскоязычная документация, как обычно, находится в полностью актуальном состоянии. Кроме того, поправлены все найденные на момент релиза опечатки. Спасибо всем, кто использует Orphus на yiiframework.ru.

Рассмотрим наиболее интересные изменения.

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

Yii 1.1.8 — загрузка файлов с произвольным расширением с помощью CMultiFileUpload

Время на прочтение1 мин
Количество просмотров4.2K
Доброго всем времени суток!

Недавно делая сайт на Yii обнаружили такую вот дыру в загрузке файлов на сервер с помощью CMultiFileUpload (за что отдельное спасибо Mx21): есть возможность взять файл с произвольным расширением, дописать в конец имени что-то вроде .jpg и потом залить на сервер виджетом CMultiFileUpload. Даже не смотря на то, что свойство 'accept' имеет, к примеру, значения 'jpeg|jpg|gif|png', т.е. не должно аплоадить ничего кроме такого рода картинок, происходило следующее: файл без проблем закачивался на сервер, причем .jpg в конечном файле обрезалось и на сервере оказывался исходный файл с тем расширением какое оно было до того как мы его переименовали.
Используемая нами версия фреймворка 1.1.8.

Лечится следующим образом:
В файле /framework/web/js/jquery.multifile.js нужно исправить строки 222-223:
          if(MultiFile.accept && v && !v.match(MultiFile.rxAccept))//{
            ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));

вернее заменить их на следующий код:
			var str=this.value;
			var pattern='\.';
			var pos = str.indexOf(pattern);
			for (var count = 0; pos != -1; count++)
				pos = str.indexOf(pattern, pos + pattern.length);
          
          
          if((MultiFile.accept && v && !v.match(MultiFile.rxAccept)) || count>1)//{
            ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));


Т.е. добавили проверку на количество точек в имени загружаемого файла, если более одной точки получаем сообщение об ошибке «Invalid file type».

Open Source-расширения для yii от команд 2ГИС

Время на прочтение1 мин
Количество просмотров1.1K
Несколько новых расширений для Yii от команды разработчиков 2ГИС:

DGSphinxSearch
AMQP(RabbitMQ)
MQLogRouter
DGPinbaLogRoute
DGApiClient

habrahabr.ru/company/2gis/blog/132029

Это же нормально, если я сделаю ссылку на статью в тематическом блоге?

7 причин для перехода с Drupal на Yii

Время на прочтение6 мин
Количество просмотров41K
По мотивам За что я люблю Drupal.
Опубликовано по просьбе JiLiZART (перевод, как я понял, тоже его).
Оригинал: erickennedy.org.

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

Работа с битовой маской

Время на прочтение2 мин
Количество просмотров47K
Доброго времени суток всем!
Часто возникает необходимость хранить данные логического типа для определенных таблиц. Например, таблица пользователей, такими данными могут быть поля активация пользователя, блокирование пользователя и др. Для таких полей удобно использовать битовую маску, при которой все данные хранятся в одном поле таблицы. Последнее время работаю с фреймверком Yii. Мне он нравится и во всем устраивает. Так вот, в процессе работы над несколькими проектами у меня появилось ряд наработок для работы с битовой маской под этот фреймверк.
Ими и хочу поделиться.
Читать дальше →

Единая авторизация пользователей с поддержкой нескольких сервисов

Время на прочтение6 мин
Количество просмотров68K
Yii EAuth extension При реализации одного из проектов на Yii framework у меня возникла задача сделать регистрацию и авторизацию пользователей через сторонние сервисы (Google, Facebook, Twitter, etc).

У данной задачи есть два пути решения:
  • Использовать сервис авторизации, например Loginza;
  • Реализовывать функции авторизации самостоятельно для каждого сервиса.
UPDATE: Актуальная версия и инструкция по настройке доступны на github.com. Инструкция в данной статье подходит для EAuth версии <= 1.1.3.
Я выбрал второй вариант...

Шардинг MySQL на Yii Framework

Время на прочтение6 мин
Количество просмотров21K
Начну с того, что наш проект находится на начальной стадии развития, а его запуск планируется на 1е ноября. И, чтобы сразу отсечь всю возможную критику касаемо преждевременной оптимизации, скажу, что перед командой была поставлена задача разработать приложение, справляющееся с резкими скачками нагрузки (от 1000 до 50000 и т. п.). В связи с этим было решено закладывать хорошо масштабируемую архитектуру, позволяющую легко и быстро увеличивать производительность системы за счет аппаратной части (по принципу scale-out).

Что мы для этого сделали...

Расширение yii-debug-toolbar

Время на прочтение3 мин
Количество просмотров23K
Доброе время суток хабравчане.

Сегодня я хотел бы рассказать об одном замечательном расширении yii-debug-toolbar от Сергея Малышева.

Вкратце


Это расширение добавляет очень симпатичную и удобную дебаг панель.

yii-debug-toolbar имеет 5 вкладок:
  • Server: отображает информацию из phpinfo();
  • Time: отображает время загрузки страницы, размер затраченной памяти и размер сессии;
  • Globals: отображает дампы глобальных переменных ($_SERVER, $_COOKIE, $_SESSION, $_POST, $_GET, $_FILES);
  • Settings: отображает конфиг приложения (все параметры, компоненты и глобальные настройки);
  • SQL: отображает информацию о SQL сервере и лог по SQL запросам (сам запрос и время исполнения);
  • Logging: отображает лог информацию (отправленную через Yii::log).


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

Yii 1.1 Application Development Cookbook, финальная версия и процесс

Время на прочтение3 мин
Количество просмотров4.6K
Вот и вышел мой англоязычный сборник рецептов по фреймворку Yii.

image

Сначала я немного расскажу про книгу, а потом попробую описать процесс её создания.
Читать дальше →

Как заставить работать расширения yii-user и rights совместно?

Время на прочтение4 мин
Количество просмотров19K

Предисловие


Доброе время суток хабравчане.

Для начала представлюсь. Меня зовут Роман, и я занимаюсь разработкой сайтов (в основном на php-фреймворке «yii», но проскакивают и другие php\python фреймворки\цмс\велосипеды\быдлокоды). В своих проектах на yii всеы нам часто приходится реализовывать тривиальные функции регистрации, авторизации и тд. Плюс ко всему прибавьте к этому ещё и распределние прав доступа для различных пользователей. Готов поспорить, что у каждого толкового разработчика есть хотя бы одна заготовка реализации этого функционали, либо он использует сторонее расширение. Вот и я каждый раз использовал одну и туже реализацию, от пректа к проекту допиливал её, интегрировал с другими частями системы. Но недавно я всё же решил порыть в сторону готовых решений, которые удовлетворяли бы мои потребности и таковые нашлись довольно быстро. 2 самых популярных расширения для yii из оффициального репозитория«yii-user» и «rights».
Читать дальше →

Ближайшие события

Backend в проекте на Yii

Время на прочтение4 мин
Количество просмотров13K
В сети очень мало информации по созданию административных страничек в приложениях и наверно каждый использует свои решения. Именно сейчас хотел бы рассказать к чему я дошел за пол года разработки сайтов на Yii (статья только для тех, кто разбирается во фремворке).
Читать дальше →

Различные конфиги для режима production и режима отладки. Два в одном

Время на прочтение4 мин
Количество просмотров6K
Привет, уважаемые хабралюди.
Из собственного опыта вы, наверное, уже знаете, как важно свести к минимуму те изменения, которые привносит в код вашего приложения режим отладки. Если же вы сопровождаете довольно крупный и уже запущенный проект, то тем более понимаете важность быстрой отладки, при которой за собой не придеться подчищать все сделанные для удобства разработки изменения.
Исследовав возможности Yii, мой друг не нашел функционала, реализующего эту возможность, и задался целью это исправить. В данном топике мы узнаем о том, как быстро и неопасно для вашего приложения изменять конфиг (его рабочую версию) под нужды разработчика. Подробности — под катом.
Только что стало известно, что подобное есть в кукбуке Yii.
Читать дальше →

Yii 1.1.8

Время на прочтение3 мин
Количество просмотров5.2K
Вышел релиз PHP-фреймворка Yii 1.1.8, включающий более 80 багфиксов, новых возможностей и улучшений. Огромное спасибо тем, кто репортил баги, предлагал новые фичи и использовал по назначению Orphus на yiiframework.ru.

Забрать свежий дистрибутив можно с официального сайта.

Инструкции по обновлению можно почитать в UPGRADE.

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

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

Yii расширения для работы с платежным сервисом QIWI

Время на прочтение5 мин
Количество просмотров7.5K
Заказчик пожелал интегрировать некий свой сервис с платежной системой QIWI.
Поскольку для добавления своей кнопки в их терминал сервис явно не дотягивал, решено было использовать именной QIWI кошелек(это который не привязывается к номеру мобильного телефона).
Поскольку на тот момент я изучал фреймворк Yii, то первым делом решено было поискать готовое расширение. Ну а поскольку поиски не дали результатов, было решено написать свое.
Изучив все возможности взаимодействия, предоставляемые сервисом, а именно: HTTP-протокол, XML-протокол и SOAP-протокол (термины сервиса QIWI), был выбран SOAP, как наиболее удобный.
Подробнее о SOAP-сервисе QIWI вы можете прочесть в этом документе.

Хочу заметить, что это мой первый опыт написания расширений для Yii.

Под катом вы найдете исходный код самого модуля (без запчастей от QIWI, см. ссылки внизу статьи).
Читать дальше →

Yii расширение для показа MP4 на коленке

Время на прочтение3 мин
Количество просмотров3.7K
Готовим проект на Yii, в котором пользователи смогут, помимо всего прочего, размещать и просматривать небольшие материалы в формате MP4. Подсказали несколько вариантов решения относительно плеера, я решил остановиться на JW Player. Испытания он прошел успешно. Осталось быстренько написать соответствующее расширение для Yii.
Под катом пошагово что откуда куда скачать и листинг кода расширения с комментариями.
Читать дальше →

Способ разделения frontend/backend-частей в Yii

Время на прочтение5 мин
Количество просмотров68K

О чем это я?


Хочу немного рассказать, как я разделяю фронтэнд/бекэнд-части сайта во всех своих проектах на Yii. Не претендую на авторство этого способа, просто хочу немного объяснить, что и как организуется и работает.

Собственно, почти всегда проект не может состоять только из фронтэнда (тоесть того, что видит посетитель). Очень часто требуется организовать административную часть, при этом иметь безболезненный доступ ко всем компонентам проекта (модели, расширения и т.п.).

Есть несколько способов добиться этого. Не буду вдаваться в подробности каждого из них, если вам интересно — можете поискать на форуме yiiframework.com.
Самым элегантным и удобным мне показался вариант с использованием своего “поведения” запуска приложения. Он позволяет очень удобно разграничить приложение в плане директорией, использовать разные конфиги для каждой части сайта и т.п.
Читать дальше →

Yii 1.1.7

Время на прочтение4 мин
Количество просмотров3.9K
На днях вышел релиз 1.1.7 PHP-фреймворка Yii, в который было включено более 90 исправленных ошибок, улучшений и новых возможностей.

Полный список изменений доступен на сайте фреймворка, самые вкусные из которых мы рассмотрим ниже.

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