Категории: Phing

PHP: Компиляция LESS с помощью Phing

Владимир | | Phing, PHP, Web разработка.

phing-less

В последнее время библиотеки, которые добавляют новые возможности CSS, становятся всё более популярными. Наиболее известные из них – LESS и SASS (SCSS). Какое-то время назад я пытался выбрать наиболее подходящую из них для собственных целей, но, в конечном итоге, понял, что разница минимальна и лучше потратить время на что-нибудь более полезное 🙂

Тем не менее, одно отличие между LESS и SASS всё же есть. В дистрибутиве LESS есть скрипт less.js, который преобразует .less файлы в .css прямо в браузере. Это очень удобно использовать при разработке, т.к. вам будет достаточно обновить страницу, чтобы увидеть изменения. Но для продакшена такой вариант не подходит по нескольким причинам.
Читать дальше

Phing: backup и сохранение в Subversion базы данных

Владимир | | MySQL, Phing, Subversion.

В этой заметке я хочу показать несложный пример использования Phing для создания резервных копий базы данных (MySQL) и их отправки в репозиторий Subversion.

Ни для одной из этих операций готовых задач для Phing я не нашел. Но, если подумать, они и не очень нужны. Ведь с помощью Phing можно выполнить любую команду. Т.е. если вы знаете как решить задачу с помощью консоли, значит вы можете автоматизировать решение с помощью Phing.

Примечание. Если вы слышите слово Phing впервые, то, думаю, вам будет интересно почитать статью Программирование на PHP. Избавляемся от рутинных операций с помощью Phing, а может быть и весь раздел Phing этого блога 😉

Возвращаемся к нашей задаче.

Для создания резервной копии базы можно использовать утилиту mysqldump. В её параметрах нужно указать имя пользователя базы, его пароль и название базы. Дополнительно нужно задать имя файла в который мы сохраняем дамп.

Например, так
Читать дальше

Изменяем файлы с помощью Phing

Владимир | | Phing, Web разработка.

На сегодняшний день большинство web приложений содержит множество конфигурационных файлов с различными настройками. Например, имя домена, параметры подключения к базе данных, размещение библиотек и т.д.

В принципе, это довольно удобно, т.к. эти файлы можно легко отредактировать с помощью обычного текстового редактора. Но проблема в том, что редактировать их приходится постоянно.

Представьте ситуацию. Вы делаете сайт, сначала тестируете его локально, а затем переносите на сервер. Естественно, перед загрузкой на сервер нужно будет как минимум изменить параметры подключения к БД.

Затем вы находите ошибку (или просто решаете что-то изменить) и процесс повторяется заново.

Каждый раз менять настройки вам быстро надоест, особенно если изменить нужно не один файл, а несколько. Да и забыть что-то очень легко.

В этой статье я покажу небольшой пример как с помощью Phing можно автоматизировать такие операции.

Примечание. Почитать о том что такое Phing и зачем нужен можно здесь.

Прежде всего, сформулируем задачу.
Читать дальше

Как написать задачу для Phing

Владимир | | Phing, PHP, Web разработка.

Тема работы с Phing уже не однократно поднималась в этом блоге. Переоценить значение этого инструмента очень сложно. Но всегда наступает момент, когда стандартных возможностей становиться недостаточно. В такой ситуации вы можете сами написать нужные функции и оформить их в виде задач.

В этой статье я покажу пример создания такой задачи.

Примечание. Я предполагаю, что вы хотя бы в общих чертах знакомы с Phing и знаете как его установить и написать простейший build файл. Если нет, советую сначала почитать эти статьи: Программирование на PHP. Избавляемся от рутинных операций с помощью Phing и Использование Phing для сборки web приложений.

Допустим, нам нужно изменять кодировку файлов. На PHP сделать это можно, например, с помощью функции mb_convert_encoding. В качестве параметров она принимает:
— исходный текст;
— нужную кодировку;
— исходную кодировку.
А после выполнения возвращает перекодированный текст.

Т.е. можно написать элементарный PHP скрипт, который будет изменять кодировки указанных файлов.

Но если нужно выполнять эту операцию на каком-то промежуточном этапе при построении проекта, то пользоваться таким скриптом будет не очень удобно. Придется либо запускать его каждый раз вручную, либо писать еще один скрипт, который будет запускать перекодировщик.

С другой стороны, с помощью Phing мы можем запустить несколько операций нажатием одной кнопки. Почему бы не добавить сюда и перекодировку?

Итак, приступим.
Читать дальше

Загрузка файлов по FTP с помощью Phing

Владимир | | Phing, PHP, Web разработка.

Предыдущая статья о Phing была немного не полной из-за отсутствия возможности загружать файлы на сервер в автоматическом режиме.

В стандартной комплектации Phing загрузку по FTP не поддерживает (кстати, довольно странно). Но, естественно, писать самостоятельно этот task не придется. Все уже сделано за нас 😉 .

Я нашел два task’а, предназначенных для работы с FTP: FtpUploadTask и FtpDeploy.
Читать дальше

Запуск сторонних программ из Eclipse

Владимир | | Eclipse, Phing, Web разработка.

Современные IDE буквально «нашпигованы» различными возможностями. Тем не менее, предусмотреть все невозможно и возникают ситуации, когда нужно использовать дополнительные программы. Речь, прежде всего, идет о различных консольных утилитах.

Естественно, гораздо удобнее, запускать эти утилиты прямо из меню IDE, а не из консоли. Эта заметка о том, как добавить такую возможность в Eclipse.

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

В качестве примера рассмотрим запуск Phing (о нем речь шла в прошлой статье).

Формат команды такой:
Читать дальше

Использование Phing для сборки web приложений

Владимир | | Phing, Web разработка.

В этой статье я хочу рассказать об использовании Phing при разработке небольшого web приложения. Почему небольшого? Все очень просто. С одной стороны в качестве примера будет использован реальный build файл, а не упрощенный вариант из учебника. А с другой – этот build файл достаточно короткий, и о нем можно было рассказать в рамках статьи 😉 .

Примечание. Phing – это система сборки проектов, основанная на Apache Ant. Я предполагаю, что вы знаете как её установить и настроить. Если нет – читайте «Программирование на PHP. Избавляемся от рутинных операций с помощью Phing».

Итак, приступим.

Недавно я писал о генераторе форм для фреймворка CodeIgniter. Как вы понимаете приложение небольшое, но, тем не менее, перед переносом его на сервер нужно сделать массу рутинных операций.

1) Subversion в каждой папке приложения создает скрытую папку “.svn”, что значительно усложняет «ручное» копирование файлов. Т.е. каждую папку придется копировать отдельно.

2) JavaScript и CSS файлы желательно сжать.

3) Кроме того, много маленьких файлов загружаются дольше, чем один большой. Т.к. в данном приложении используется 5 js-файлов, то разумно будет объединить их в один. С другой стороны, во время разработки удобнее работать именно с 5-тью маленькими файлами.

4) Раз мы объединяем несколько js-файлов в один, то необходимо изменить теги <script> в заголовках страниц.

5) Практически все современные браузеры поддерживают gzip сжатие. Поэтому сделаем архивную версию объединенного JavaScript файла (для браузеров, которые поддерживают gzip, будем отдавать архивную версию, всем остальным — обычную).

Как видите, работы не много. Но представьте, вы подготовили приложения для размещения на сервере, и нашли ошибку или решили что-то изменить. Исправить сжатые js файлы конечно можно, но, поверьте, это далеко не самое увлекательное занятие 🙂 . Т.е. вам придется внести исправления в исходный вариант и выполнить все шаги с 1 по 5 заново.

Естественно такую работу можно автоматизировать и Phing отлично подойдет в этой ситуации.
Читать дальше

Программирование на PHP. Избавляемся от рутинных операций с помощью Phing

Владимир | | Phing, PHP, Web разработка.

Логотип статьи о Phing

В этой статье я хочу рассказать об инструменте, который может значительно сэкономить ваше время и защитить от механических ошибок. Этот инструмент очень часто применяется при разработке крупных проектов профессиональными командами. Но в этой статье я постараюсь показать, что он пригодится и при самостоятельной разработке небольших web приложений.

Речь, конечно, пойдет о Phing. Он позволяет автоматизировать большинство рутинных операций, с которыми вы можете столкнуться во время разработки.

Принцип работы следующий. Вы создаете xml файл, в который записываете необходимые группы действия (о синтаксисе этого файла немного ниже), после этого вы сможете выполнить любую группу действий всего одной командой. Т.е., по большому счету, phing можно считать «продвинутой» версией командных файлов.
Читать дальше