Статьи Архив статей

Автор: Мациевский Николай aka sunnybear
Опубликована: 21 апреля 2009

Web Optimizer. Версия 0.4 — Stable Release Candidate

Веб Оптимизатор (Web Optimizer) — приложение для автоматизации всех действий по клиентской оптимизации — достиг версии 0.4. Список поддерживаемых систем ширится и растет с каждым днем: Drupal 5 и 6, Joomla 1.0 и 1.5, Joostina, Wordpress 2.7, PHP-Nuke, LiveStreet, vBulletin 3.8 и так далее.

Подробное руководство по установке (немного устарело уже, правда)
Загрузить версию 0.4.0
Загрузить мини-установщик
Помочь проекту материально

Изменения

Как и было заявлено ранее, в очередную «большую» версию вошло все для комфортной работы с клиентской оптимизацией сайта:

  • Добавлено авто-обновление (начиная с версии 0.3.8). Теперь нет необходимости удалять Web Optimizer через веб-интерфейс, скачивать весь архив и устанавливать заново. Достаточно просто нажать «Обновить» — и будет загружена новая версия (с сохранением всех настроек).
  • Добавлена «Цепочная оптимизация». Теперь клиентская оптимизация сайта может быть выполнена независимо от посещений самого сайта. Для этого нужно просто установить Web Optimizer любым из возможных путей. Вся оптимизация делается на тестовом файле, основной сайт не затрагивается. Как только основные файлы созданы в кэширующей директории, только тогда происходит переключение основного сайта на их использование. В ходе оптимизации запускается несколько последовательных PHP-процессов, поэтому такой метод доступен и для слабых серверов (не срабатывает ограничение по времени выполнения скриптов).
  • Добавлена «Быстрая установка» в один клик. При этом используется «Цепочная оптимизация».
  • Создание data:URI перенесено в алгоритм разбора и создания CSS Sprites. Стало работать намного быстрее. Также добавлено ограничение в 32 Кб на base64-строку (в связи с IE8).
  • Проведены незначительные улучшения в работе алгоритма CSS Sprites: теперь он стал заметно стабильнее.
  • Добавлены дополнительные настройки: объединение Javascript-файлов и базовое уменьшение через JSMin разнесены (теперь можно отключить минимизацию файлов отдельно от их объединения: иногда бывают проблемы в связи с некорректностью исходных скриптов).
  • Локализация полностью закончена. Доступно три языка: русский, английский, украинский. Выбираются автоматически на основе предпочтений браузера. За украинскую локализацию дружно говорим спасибо  charly.
  • Наконец-то начинает появляться дизайн (пока только в виде логотипа). Над дизайном работает  fade.
  • Установка и работа Web Optimizer успешно протестирована на следующих системах:
    • Joomla 1.0.15
    • Joomla 1.5.0
    • Joomla 1.5.9
    • Joomla 1.5.10
    • Joostina 1.2
    • Drupal 6.10
    • Drupal 5.16
    • Wordpress 2.7.1
    • Typo3 4.2
    • Simpla
    • PHP Nuke 8.0
    • Etomite 1.1
    • Livestreet 0.2
    • Santafox 1.1
    • vBulletin 3.8
    • и некоторых других
  • И сотня-другая небольших улучшений. В том числе: опциональная проверка на время изменения файлов, опциональное задание корня директорий, избавление от всех PHP Notices / Warnings, проверка существования и доступности классов и объектов, и др.

Благодарности

Огромное спасибо хабраюзерам и просто хорошим людям:

  •  akira за работу над интеграцией YUI Compressor в проект. Ожидается, что YUI полноценно войдет в проект буквально на днях.
  •  charly за украинскую локализацию.
  •  fade за работу над дизайном.
  •  janvarev за патч касательно времени изменения файлов и пачку идей относительно применения Веб Оптимизатора для нескольких сайтов одновременно.
  •  olegman за терпение и настойчивость в обнаружении ошибок на платформе Drupal.
  •  kellas за предоставление окружения для PHP как CGI-модуля и немного терпения.
  •  bazik за помощь в адаптации Web Optimizer для нескольких окружений.
  •  onthefly за помощь в настройке и тюнинге Livestreet для Web Optimizer (шаблон по умолчанию содержит пару ошибок, которые противоречат спецификации и ломают оптимизацию).
  •  ort за создание движка Livestreet, который можно было помучить :)
  • Многочисленным пользователям, установившим Web Optimizer к себе на сайт и сообщивших об успешном (или не очень) процессе. Если кого забыл упомянуть лично — напишите, обязательно добавлю.

Условия установки

Для быстрой установки Web Optimizer необходимо загрузить его на сервер и выставить права на запись для сервера на config.webo.php и папку cache (либо просто запустить мини-установщик из браузера) + разрешить запись для корневого index.php и убедиться, что в корне есть .htaccess, доступный на запись (либо в случае его отсутствия сам корень доступен на запись для веб-сервера). Также нелишним будет наличие curl.

В любом случае все модули проверяются на доступность перед использованием, поэтому ничего страшного не произойдет.

С основными проблемными моментами лучше ознакомиться в материале предыдущего релиза. Больше их не стало (а судя по отзывам — даже меньше).

В следующей версии

Рук как обычно ни на что не хватает, поэтому если есть желание поучаствовать в процессе — милости просим. Сейчас открыты следующие вопросы:

  • Более корректный и быстрый алгоритм разбора HTML-документа. Если кто-то может подсказать в этом направлении (только не Tidy как модуль к PHP — мы не можем закладываться на специфическое окружение).
  • Выполнение оптимизации по расписанию. Либо «по кнопке».
  • PHP-библиотеки для разбора и оптимизации JPEG/GIF/PNG-изображений — чтобы не использовать консольные утилиты.
  • Поддержка CMS. Если у вас есть собственное решение на PHP — установите на него Web Optimizer. Также планируется включить поддержку совместимости не только с самими CMS, но и с PHP-фреймворками.
  • Если вы хотите перевести установку на свой язык — пишите, пожалуйста, в приват. Обеспечим исходниками и полной поддержкой.

Дизайн

Поскольку проект этот open source, и никто нас не финансирует, то вся надежда остается на сообщество, ради которого все это предпринимается. Следующий месяц (с 21 апреля по 20 мая) объявляется месяцем поддержки дизайна. Все средства, переведенные на эти счета

sprites.in/donate/

будут полностью направлены  fade в знак благодарности. Никто ничего не переведет — ничего и не получится. Но кто знает, может, и разработка приложения так и заглохнет без поддержки сообщества? В общем, решать вам, пользователям.

Заключение

В общем, ставим, радуемся или пишем об ошибках. Лучшей иллюстрацией будет оценка YSlow до и после оптимизации

Загрузить версию 0.4.0
Загрузить мини-установщик
Помочь проекту материально
Сайт проекта пока в Google Code
Twitter-канал

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

Все комментарии (habrahabr.ru)