PHP: работа с разными cms

Несколько универсальных приемов для работы с "зоопарком" CMS:

1. Научитесь пользоваться grep/find/awk -- реально полезные инструменты для поиска кода. Допустим вы не знаете архитектуры/системы шаблонизации в конкретной системе и нужно внести  какие либо правки. Можно конечно пойти почитать доки(если они есть :) ), начать "разварачивать код" с входной точки (index.php или другой), но для мелких правок проще всего зайти по ssh и запустить:

on@on$ find ./www/ | grep -e ".(html|php|tpl)" | grep 'ФРАЗА' `xargs`

В результате будет выведен список файлов в которых есть слово ФРАЗА. Обьясню эти команды последовательно:

  • символ "|" означает пайп (pipe) -- т.е. результат выполнения комады до "|" будет передан программе после пайпа на stdin. 
  • получаеться что "find ./www" -- выдает список файлов в папке хоста, 
  • на вход "grep -e ".(html|php|tpl)" передаеться этот список, и команда фильтрует файлы по расширению
  • команда "grep 'ФРАЗА' `xargs`" ищет фразу в файлах. Для того чтобы передать имя файла (из списка) используем программа xargs заключенную в обратные кавычки (важно!)

  В сети есть и более интересные случаи применения grep/awk

2. Используйте sed -- еще одна программа из набора "must have". Допустим вам нужно сменить пароли для БД, или поменять пути при переносе сайта на другой хостинг. Естественно "поменять вручную" строки в файлах займет кучу времени, и принесет один гемор..
Для замены "СЛОВО1" на "СЛОВО2" во всех файлах директории, можно просто запустить команду:

on@on$ find ./www/ | sed -i 's/СЛОВО1/СЛОВО2/'

Используйте с осторожностью, а лучше всего делайте бекапы перед заменами, т.к. практика показывает что неумелое использование sed приводит к потерям кода/а далее соответсвенно и к времени на восстановление.

3. Используйте систему контроля версий (VCS). -- даже если ваше начальство/сотрудники этого не требуют, это гораздо облегчит вашу работу с конкретным проектом ( даже если над ним работает 1 человек).

4. Делайте бекапы каждый день. -- если у вас нет админа, лучше всего заняться этим самому, т.е. написать пару скриптов для бекапов. Т.е. если вы пользуетесь VCS вам нужно делать бекапы БД уже работаюшего сайта. Повреждение/замену файлов можно будет найти сравнив их с локальными файлами (файлами в репозитории)

Все эти ф-ции есть в большинстве популярных IDE (NetBeans/NuSphere PHPed/Eclipse/PHP Storm), но иногда всетауи удобней сделать все из консоли.

Комментарии