Я младший программист, где работаю. Наш веб-сайт был написан с использованием PHP 4. Мы переходим с PHP 4 на PHP 5.3. Примерно 5000 файлов PHP находятся примерно в 595 каталогах. Итак, как вы понимаете, масштаб этого проекта довольно огромен.
Мы используем Subversion для контроля версий. У меня две отдельные кассы. У меня есть две виртуальные машины, которые действуют как отдельные веб-хосты - один стек имитирует наш фактический веб-сервер (CentOS 4, PHP4 и т. Д.), А другой - стек PHP 5.3 (Ubuntu 12.04 LTS).
Я потратил время, чтобы проверить файлы на наличие основных синтаксических ошибок, используя следующие команды:
Изменить: я выполнил следующие рекурсивные поиски из корня веб-сайта.
find ./ -type f -name \*.php -exec php -l {} \; < ~/php5_basic_syntax_assessment.txt
find ./ -type f -name \*.inc -exec php -l {} \; < ~/php5_basic_syntax_inc_assessment.txt
Я понимаю, что использование php -l для проверки базового синтаксиса не показывает устаревшие структуры / функции кода и не дает предупреждений (IE: используйте preg_slice () вместо slice ()). Поэтому я решил установить PHP CodeSniffer.
Сначала я установил PEAR: [я принял все параметры по умолчанию]
cd ~/
mkdir pear
cd pear
wget http://pear.php.net/go-pear.phar
php go-pear.phar
Затем я установил git:
cd ~/
sudo apt-get update
sudo apt-get install git
Затем я установил PHP Code Sniffer.
pear install PHP_CodeSniffer
Наконец, я установил следующие стандарты совместимости PHP 5.3 для анализатора кода PHP:
git clone git://github.com/wimg/PHP53Compat_CodeSniffer.git PHP53Compatibility
Я сделал все вышеперечисленное, чтобы автоматически оценить файлы PHP размером 5K. Было бы чрезвычайно утомительно и долго просматривать каждый файл, чтобы убедиться, что он вручную соответствует стандартам кодирования PHP 5.3.
Наконец, вот команда, которую я использовал для запуска анализатора кода PHP:
phpcs --standard=/home/my_user_name/PHP53Compatibility -p --report-file=/home/my_user_name/php53_assessment.txt /path/to/web/root
Чтобы убедиться, что конкретные стандарты не являются проблемой, я также запустил анализатор кода PHP, используя стандарты по умолчанию:
phpcs -p --report-file=/home/my_user_name/php53_assessment.txt /path/to/web/root
В любом случае отчеты зависают на одном и том же месте. Я не спал более 24 часов. Я ждал 18 часов, прежде чем остановить первый запуск с помощью CTRL + C. Второй все еще работает и работает уже около полутора часов.
Итак, что вызывает зависание моего анализатора кода PHP?
Любая помощь очень ценится.