|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блогов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.
Пользуемся
|
| ||
|
+27 |
41 |
biletiks |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
|
-5 |
36 |
Счастливые мамашки |
|
-9 |
2 |
gvud |
|
-16 |
13 |
mydorian |
|
|
|
|
|
|
|
|
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.
