Показаны сообщения с ярлыком Yii. Показать все сообщения
Показаны сообщения с ярлыком Yii. Показать все сообщения

среда, 6 октября 2010 г.

Полезность мониторинга ошибки 404

Каждый раз, когда передаю свои сайты заказчику или просто выкладываю в онлайн, все время оставляю отсылку email-уведомлений, при возникновении ошибок. В Yii это деалется очень просто. Подробнее вот здесь, раздел 'Отсылка ошибок почтой'.
Бывает за одну ночь приходит по 100-150 писем =). Вот что интересного удалось извлечь из этой кучи "спама".

1 Обязательно в корень каждого сайта добавляйте robots.txt, я часто забывал нем.
2 Обязательно в корень каждого сайта добавляйте favicon.ico,о нем тоже частенько забывают.

Особенно мне понравились попытки обратится по адресам типа вот таких:
http://mysite.ru/wp-admin/...
http://mysite.ru/showthreads/...

Очевидно кто-то сканирует сайты на известные cms и форумные движки.

Сегодня даже было обращение к адресу вида:

http://mysite.ru/.svn/...

Так что не забываем в паблик выкладывать не рабочую копию,
а экспортированные исходники (svn export).

Вот такие дела!

вторник, 5 октября 2010 г.

Печать фотографий через интернет в Ногинске

В Ногинске теперь можно заказать печать фотографий через Интрнет.

Очень удобно! Сам испытал!

Создал заказ, отправил, пришел и получил =)

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

http://pechat-noginsk.ru/

И да..если найдете ошибку - пишите тоже мне!

Удачного всем отдыха, хороших впечатлений и фотографий!

http://pechat-noginsk.ru/

понедельник, 13 сентября 2010 г.

Поправил мелкие баги на sprosiotvechu.ru

На сайте SprosiOtvechu.ru исправил некоторые мелкие баги.
После того как вернусь из отпуска, возьмусь серьезно за этот проект.
Есть куча идей, которые хочется реализовать.
А на то, что уже есть аналоги - нам наплевать =) Много, ведь не мало =)

п.с. Если будут предложения или замечания - пишите мне!

понедельник, 30 августа 2010 г.

Yii хотелки и меньше лапше-кода

Довольно часто, при работе с сессией в Yii, приходится писать код вот такого плана:

$nickName    = Yii::app()->user->getState('nickName');
$accessLevel = Yii::app()->user->getState('accessLevel');
.........................................................

Аналогично и при установке этих значений.


Было бы здорово иметь возможность передавать методам getState и setState массив параметров:

$data = Yii::app()->user->getState(array(
       'nickName',
       'accessLevel' 
));

или

Yii::app()->user->setState(array(
       'nickName'     => 'xoma',
       'accessLevel'  => 'superAdmin' 
));

пятница, 27 августа 2010 г.

Yii. Конфликт имени модуля и контроллера.

Есть Yii приложение, у которого в настройках прописан модуль 'Page':

'page' => array(
     'class'  => 'application.modules.page.PageModule',
     'layout' => 'application.views.layouts.column2'
),

Так же есть простой контроллер 'PageController', расположенный в каталоге приложения 'controllers'.

При обращении по url типа: http://localhost/page/about - возникает ошибка, так как Yii пытается вызвать контроллер 'about' из модуля 'Page', а его нет.

При обращении по url http://localhost/Page/about (Page вместо page) - Yii вызывает контроллер Page и его экшн 'about' что мне и требовалось =).

вторник, 24 августа 2010 г.

Коварство rules urlManager в Yii

Долго мучился с проблемой, все описано вот тут

Валидируем UTF-ые строки в Yii

Начиная с версии 1.1.1 CStringValidator может принимать параметр "encoding". Выдержка из API:
the encoding of the string value to be validated (e.g. 'UTF-8'). Setting this property requires you to enable mbstring PHP extension. The value of this property will be used as the 2nd parameter of the mb_strlen() function. Defaults to false, which means the strlen() function will be used for calculating the length of the string.
Используйте его при валидации текстовых строк на русском языке.

Пример (часть метода rules модели):

array('question, answer', 'length', 'max'=>255,'encoding' => 'utf-8'),

И не забудьте прочитать статью о том, как включить поддержку Юникод в Yii

понедельник, 23 августа 2010 г.

Доступ к настройкам модуля в Yii

При разработке на Yii довольно часто приходится иметь дело с модулями.
Каждый модуль может иметь свои настройки (переменные уровня модуля). Для получения доступа к такого рода настройкам из самого модуля я использую конструкцию типа вот такой:

Yii::app()->controller->module->propertyName;
Однако если настройки модуля необходимо получить из другого модуля этого же приложения  или из самого приложения - такой прием не подойдет, так как переменная module может быть не определена, если текущий контроллер  не принадлежит модулю.
Для этого применяется конструкция вида:
Yii::app()->getModule('user')->propertyName;

Здесь 'user' - название модуля, замените его на название своего модуля.
ВНИМАНИЕ!!! 
Название модуля пишется только в нижнем регистре, иначе не работает!

Второй вариант более универсальный и переносимый - стараюсь использовать только его.

четверг, 19 августа 2010 г.

Yii как я форматирую код

При разработке на Yii очень часто приходится иметь дело с формами и с моделями.
Формы (потомки CFormModel)  и модели (CActiveRecord), как правило, принимают параметры и что-то с ними делают =). При этом часто можно видеть записи вида:

$model = new Model();
$model->attr_1 = 'attr_1';
$model->attr_2 = 'attr_2';
.......................................

Такая "кишка" присваиваний выглядит в коде не очень здорово.

Вместо этого можно и нужно использовать метод setAttributes.
Если еще и отформатировать код как-нибудь вот так:
     $registration = new Registration();
$registration->setAttributes(array(
'email'    => $email,
'nickName' => $login,
'password' => $pass,
));
if($registration->save()){
    }
Жизнь становится прекраснее!

Аналогично форматировать  можно и код  выборки данных, используя ORM Yii:
$answers = Question::model()->answered()->with('user.profile','fromUser')->findAll(array(
'condition' => 't.userId = :userId',
'limit'     => self::STREAM_PER_PAGE,
'offset'    => $already,
'params'    => array('userId' => $user),
'order'     => 't.creationDate DESC'
)); 


Пусть Ваш код будет приятным для чтения и просмотра!

Сжимаем JavaScript в Yii

Очень модная и что самое главное - ПОЛЕЗНАЯ тема последнего времени в веб-разработке это "Клиентская оптимизация".
Всякие там сжатия, объединения, спрайты, оптимизация картинок и еще много много всего.

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

В своих PHP-проектах я в основном использу фреймворк Yii и именно для него написал простую консольную команду для сжатия жабаскрипта.

скачать
краткое описание