PHP: работа с разными cms
14.07.20121. Научитесь пользоваться 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), но иногда всетауи удобней сделать все из консоли.
Комментарии