PHP 5.3: что пых грядущий нам готовит?

Опубликовано в рубрике Статьи 2008.02.22 korchasa – 4 комментов

То о чем так долго говорили большевики…

Кратенько:

  • пространства имен
  • mysqlnd
  • позднее статическое связывание
  • динамические вызовы статических методов
  • Прочие изменения

А теперь подробно…
Читать далее »

Тесты PHP шаблонизаторов

Опубликовано в рубрике Тесты 2008.02.08 korchasa – Комментариев пока нет

Два дня убил на эти тесты и небольшие оптимизации macro. А теперь <звуки горна: та-да>:

Limb template engine benchmark

Примечания:

  • В роли опкод-кешера используется APC.
  • Постфикс ‘one_tpl’ указывает, что шаблон один, и нет инклудов и враппов.
  • macro_sl – версия macro – с простым локатором шаблонов.
  • macro_sl_boundled – версия macro – с простым локатором и объединенная в один файл.

SVN:

https://svn.limb-project.com/limb/misc/template_engines_bench/

Текущее положение дел таково:

name rps %
php_one_tpl 2647 100%
php 2183 82%
blitz-ctx-arr 1994 75%
macro_sl_bundled 1736 66%
blitz 1521 57%
quicky_one_tpl 1457 56%
smarty_one_tpl 1389 52%
macro_sl 1247 47%
smarty 942 36%
quicky 839 32%
macro 768 29%

Работа с UTF-8 в PHP

Опубликовано в рубрике Анонсы 2008.01.24 korchasa – Комментариев пока нет

Ребята из WACT собрали, упорядочили и выложили список “проблемных” мест в PHP, с точки зрения использования UFT-8:

Полную версию можно прочесть здесь.

4 в 1 – простой комбайн для оптимизации статики

Опубликовано в рубрике Анонсы 2008.01.24 korchasa – 5 комментов

Наткнулся на интересную библиотеку. Вот перевод интродакшена:

Как уменьшить время загрузки сайта в 5 раз, тремя строчками кода.

Есть 4 относительно простых способа, с помощью которых вы можете уменьшить время загрузки страницы:

  • делать меньше HTTP запросов
  • выставлять expires на далекое будущее
  • сжимать компоненты вашей страницы gzip’ом
  • обфускачивать ваши JavaScript и CSS файлы, а так же сам HTML-код

После моего поста об объединении CSS и JavaScript файлов, я написал PHP-скрипт, который будет автоматически применять все вышеперечисленные способы. Все, что вам нужно сделать, это поместить следующий код в начало своего PHP-файла:

require_once ( 'class.compressor.php' ) ;
$compressor = new compressor ( 'css,javascript,page' ) ;

А этот код в конец:

$compressor -> finish ( ) ;

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

Inclued. Профайлинг подключаемых файлов в PHP

Опубликовано в рубрике Анонсы 2008.01.20 korchasa – 7 комментов

Не все знают, но существует удобная утилита для определения подключаемых (include, require) файлов в PHP. И зовется она — Inclued. В данный момент последней версией является 0.3 (inclued-0.3.tar.gz 7.5Кб).

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

Google Chart API

Опубликовано в рубрике Анонсы 2007.12.07 korchasa – Комментариев пока нет

Несколько дней назад компания Google выпустила новый сервис – Google Chart API.

Сервис как и все гениальное прост: теперь все, что необходимо для построение графиков это сформировать URL.

На сегодняшний день поддерживаются несколько типов диаграмм:

Поддерживаются все необходимые(на первое время) опции:

  • заголовок
  • легенда
  • набор цветов
  • заливка цветом диаграмм, фона и поверхностей
  • различные типы осей координат
  • сетка
  • вертикальные и горизонтальные маркеры
  • различные типы линий
  • выносные метки, для круговых диаграмм

Отличный способ разгрузить собственный сервер ;)

Вышел YUI 2.4.0

Опубликовано в рубрике Анонсы 2007.12.05 korchasa – Комментариев пока нет

Нежданно-негаданно вышел новый релиз YUI 2.4.0. Нежданно, потому что я за ним перестал следить сразу после превращения YUI.Ext в Ext JS. А обратил внимание на эту новость из-за некоторых “вкусных” фич, которые появились в новой версии. Но об этом позже, а пока список нововведений:

Доступ к DOM-элементам

Доступ к DOM-элементам теперь стал похож на JQuery. Поддерживаются три типа операций:

Выборка (query)

var links = YAHOO.util.Selector.query('ul[class^=list] li:first-child a:not([href=#])');

Вернет все ссылки, у которых хреф не #, из первого элемента списка, класс которого начинается с “list”.

Фильтр (filter)

var nodes = document.getElementsByTagName('li');
nodes = YAHOO.util.Selector.filter(nodes, '.selected');

Вернет все элементы с классом “selected”, из nodes.

Проверка (test)

var nodes = document.getElementsByTagName('li');
var is_selected_list_items_exist = YAHOO.util.Selector.test(nodes, '.selected');

Вернет true, если есть li-элементы с классом selected, ну и false в противном случае.

Подкачка скриптов и CSS-файлов

Теперь YAHOO.util.Get умеет подкачивать скрипты (YAHOO.util.Get.script()) и CSS-файлы(YAHOO.util.Get.css()) после загрузки страницы. Соответственно если вам скрипты нужны не каждый раз, то можно их грузить по обстановке, за что вам пользователь и сервер спасибо скажут.

Профайлер

Ура! Даешь много данных хороших и разных!
*шепотом: А мы все равно будем использовать firebug…*

JSON-компонент

Главная фича – умеет парсить json, и соответственно контролировать его правильность:

try {
var prod = YAHOO.lang.JSON.parse(jsonString);
} catch (e) {
alert("Invalid product data");
}

Самое вкусное – напоследок…

Графики и диаграммы

Вроде бы эта штука существовала отдельно и раньше, хотя с mootools путать. Теперь же есть в самом YUI, и очень даже ничего. Работает на Flash’е( версия 9.0.45), поэтому гладка и анимирована.

  • виды нграфиков: обычные координатные графики(точками и линиями), бары, пироги, а так же их группы (серии)
  • формат данных – объект YAHOO.util.DataSource, который можно получать откуда душе угодно. По ним, кстати, и таблицы строить удобно и легко, следовательно смена вида таблица/график по кнопке, делается за несколько минут
  • умеет перерисовываться по времени
  • умеет рисовать легенду

Из остального – как обычно потрясающая документация. За одни только cheatsheet’ы на каждый раздел хочется пожать руку и угостить компотом.

Ext JS 2.0

Опубликовано в рубрике Анонсы 2007.12.05 korchasa – Комментариев пока нет

Вчера вышел финальны релиз Ext JS 2.0. Из новых вкусностей (кратенько):

Группировка строк в гридах

Скроллинг списка табов

Тип столбца – дерево

Помимо этого обновлена документация, добавлено несколько примеров.

Новость на блоге Ext JS

Строгая типизация в PHP

Опубликовано в рубрике Анонсы 2007.11.23 korchasa – Комментариев пока нет

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

Специально для таких любителей сотворить геморрой на пустом месте (а скорее не себе, а своему подчинённому), есть PECL’овское расширение SPL_Types, которое вводит строгую типизацию. Пример кода можно найти тут.

Вкратце:

getMessage();
}

Документирование JavaScript. JSDoc

Опубликовано в рубрике Анонсы 2007.11.22 korchasa – Комментариев пока нет

Спасибо, Idler’у подкинул ссылку на генератор документации для JavaScript – JSDoc.

  • умеет генерировать HTML (вот такой), XML и XMI (например для Umbrello).
  • резок, как понос, ибо на Perl’е написан
  • поддерживает следующие Doc-кострукции:
    • @param
    • @argument
    • @return
    • @returns
    • @author
    • @deprecated
    • @see (связи с с методами, классами обрабатываются)
    • @version
    • @requires
    • @throws
    • @exception
    • @link
    • @fileoverview
    • @class
    • @constructor
    • @type
    • @extends
    • @private
    • @final
    • @member
    • @ignore
    • @base
    • @addon
    • @exec

Даешь документацию всего JS-кода!

UPDATE: Как оказалось JSDoc’и прекрасно понимает JSEclipse.