![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера RMCreative.ru - Блог/Записи в блоге |
![]() |
RMCreative.ru - Блог
Голосов: 1 Адрес блога: http://rmcreative.ru/feed/ Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL |
Paper.js
2011-06-28 22:22:52 (читать в оригинале)Интересная библиотека для работы с canvas. Отличается наличием объектной модели и приятным простым API. Например, прямоугольник можно построить так:
var topLeft = new Point(10, 20); var rectSize = new Size(200, 100); var rect = new Rectangle(topLeft, rectSize);
Пробуем
Пользуясь случаем вспомнил давнее увлечение и набросал абстрактную штуковину.
Yiiclipse, поддержка Yii для Eclipse PDT
2011-06-27 16:31:17 (читать в оригинале)В лагере IDE, умеющих работать с Yii прибыло. Конечно, с фреймворком и так довольно приятно работать во всех IDE с нормальной поддержкой PHP, но некоторые специфичные вещи всё-таки бывают очень полезными.
Yiiclipse добавляет две возможности к стандартным для PDT: wizard для создания проекта и, что самое главное, навигацию по вызовам view и layout.
Пользуемся
Yii 1.1.8
2011-06-27 00:08:06 (читать в оригинале)Вышел релиз Yii 1.1.8, включающий более 80 багфиксов, новых возможностей и улучшений. Огромное спасибо тем, кто репортил баги, предлагал новые фичи и использовал по назначению Orphus на yiiframework.ru.
Забрать свежий дистрибутив можно с официального сайта.
Инструкции по обновлению можно почитать в UPGRADE.
Полный список изменений, как обычно, можно прочитать в CHANGELOG, мы же бегло рассмотрим самое интересное.
Свои классы для правил URL
Для сложной работы с URL, с которой не может справится стандартный класс CUrlRule
(например, когда часть URL зависит от значений в базе данных), можно написать свои классы для обработки URL и использовать их в конфигурации CUrlManager
:
array( // стандартное правило '/login' → 'site/login' и т.д. '<action:(login|logout|about)>' => 'site/<action>', // нестандартное правило для '/Производитель/Модель' array( 'class' => 'application.components.CarUrlRule', 'connectionID' => 'db', ), // стандартное правило для 'post/update' '<controller:\w+>/<action:\w+>' => '<controller>/<action>', ),
Сам класс при этом наследуется от CBaseUrlRule
и выглядит примерно так:
class CarUrlRule extends CBaseUrlRule { public $connectionID = 'db'; public function createUrl($manager,$route,$params,$ampersand) { if ($route==='car/index') { if (isset($params['manufacturer'], $params['model'])) return $params['manufacturer'] . '/' . $params['model']; else if (isset($params['manufacturer'])) return $params['manufacturer']; } return false; // не применяем правило } public function parseUrl($manager,$request,$pathInfo,$rawPathInfo) { if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) { // совпадают ли $matches[1] и $matches[3] с // производителем и моделью в базе? // если да, выставляем $_GET['manufacturer'] и/или $_GET['model'] // и возвращаем 'car/index' } return false; // не применяем правило } }
Улучшенный автозагрузчик классов
В Yii уже есть загрузчик классов, подключающий их как только они потребуются. Теперь он не конфликтует со сторонними загрузчиками и может выполняться как до них, так и после. В предыдущих версиях он всегда выполнялся после сторонних автозагрузчиков, что приводило к лишним вызовам при использовании классов Yii:
// По умолчанию сторонний загрузчик регистрируется до загрузчика Yii Yii::registerAutoloader($autoloader);
Теперь можно делать так:
// При передаче true вторым параметром сторонний автозагрузчик добавляется после загрузчика Yii Yii::registerAutoloader($autoloader, true);
По умолчанию автозагрузчик Yii использует PHP include path. Для некоторых хостингов это является проблемой, решить которую можно немного поправив index.php
:
require('path/to/yii.php'); // отключаем PHP include path Yii::$enableIncludePath = false; Yii::createWebApplication($config)->run();
Логирование в режиме реального времени
Некоторые консольные приложения могут работать очень долго. Для них полезно писать сообщения в лог сразу, а не ждать завершения приложения:
// автоматически передаём каждое сообщение роутеру лога Yii::getLogger()->autoFlush = 1; // автоматически пишем сообщения при получении логгером Yii::getLogger()->autoDump = true;
Работаем со счётчиками в БД через AR
В классе CActiveRecord
появился новый метод saveCounters()
, похожий на существующий CActiveRecord::updateCounters()
. Главное отличие — saveCounters()
работает только с текущим объектом в то время как updateCounters()
работает со всей таблицей:
$post = Post::model()->findByPk(1); // наращиваем количество просмотров поста $post->saveCounters(array('views'=>1)); // то же для прошлый версий Post::model()->updateCounters(array('views'=>1), 'id=1');
Генерация файлов переводов
При использовании yiic message
часто приходилось удалять старый файл и заменять его новым, который генерировался рядом. Теперь можно писать сразу в старый файл, если выставить в конфигурации команды опцию overwrite
в true
.
Создание URL в консольных приложениях
В веб-приложениях для генерации URL обычно используется CUrlManager
, который ранее не был доступен консольным приложениям. Теперь и в веб-приложениях и в консольных можно пользоваться Yii::app()->createUrl()
, что очень удобно, например, для построения sitemap, в котором перечисляются URL веб-приложения.
В clips теперь можно использовать параметры
Это полезно в том случае, когда кусок кода в view повторяется много раз, но он недостаточно сложен для выноса его в отдельный файл:
// определяем clip <?php $this->beginClip('hello') <p>Привет, {username}!</p> <?php $this->endClip() <?php // используем clip <?php $this->renderClip('hello',array( '{username}'=>'Qiang', )) <?php $this->renderClip('hello',array( '{username}'=>'Alex', )) <?php $this->renderClip('hello',array( '{username}'=>'Michael', ))
Анонс на хабре
YiiCookbook.org
2011-06-25 23:47:54 (читать в оригинале)По случаю завершения работ над текстом книги запустил посвящённый ей сайт, на котором будут собираться описки и отзывы, а также, после печати книги, будут выложены код и, возможно, бесплатная глава.
Как вам?
Sprite Cow
2011-06-25 23:42:48 (читать в оригинале)Отличный инструмент, позволяющий легко работать с изображениями-спрайтами. Загружаем картинку, щёлкаем на область, получаем CSS со смещением, высотой и шириной.
Очень удобно, меня даже затянуло и я загнал все изображения этого блога в пару спрайтов. Единственный минус — не работает в Opera.
Пользуемся


![]() | ||
+140 |
160 |
Zoxx.ru - Блог Металлиста |
+121 |
146 |
artnotes.ru |
+113 |
313 |
Yukari_7 |
+81 |
140 |
кино и люди |
+26 |
139 |
Mellanius.ru |
![]() | ||
-1 |
72 |
Bestmult.info - лучшие мультфильмы для просмотра on-line |
-1 |
67 |
Блог |
-4 |
62 |
Выкрутасы скачать бесплатно |
-9 |
15 |
Скачать все субтитры |
-10 |
14 |
Скачать субтитры L |

Загрузка...

взяты из открытых общедоступных источников и являются собственностью их авторов.