Модификация приложения Perl-катализатора

Итак, я пытаюсь изменить приложение, написанное другим программистом. Программа написана на Perl и, по-видимому, использует среду Catalyst, с которой у меня нет опыта.

Код хорошо документирован, и мои модификации кажутся довольно простыми, однако, когда я пытаюсь что-то изменить (точнее, в контроллерах), то же самое не дает никакого эффекта. Я пропустил шаг? Я открываю файл, редактирую его, сохраняю и пытаюсь загрузить веб-приложение в своем браузере. Я даже удалил все содержимое одного из контроллеров, чтобы посмотреть, не сломает ли это приложение, и это не так.

Пожалуйста помоги.

Спасибо,

Кен


person KTastrophy    schedule 25.03.2011    source источник
comment
Какой веб-сервер вы используете? Вы перезапустили его?   -  person ysth    schedule 25.03.2011
comment
Использование apache... нужно ли его перезапускать?   -  person KTastrophy    schedule 25.03.2011
comment
Если он работает под управлением mod_perl, то, вероятно, так и есть, mod_perl кэширует скомпилированный исходный код Perl и не проверяет наличие изменений (это позволяет избежать траты времени на вызовы stat(2) снова и снова).   -  person mu is too short    schedule 25.03.2011


Ответы (1)


Если приложение было настроено разумным образом (используя uri_for(_action) в шаблонах и не полагаясь конкретно на server/env/etc), вы должны разрабатывать с сервером разработки. Есть некоторые практики, которые могут сделать это трудным: невозможным без модификаций. Это все, что вам нужно сделать –

cd {APPLICATION DIRECTORY}
# Read about it-
perldoc script/*_server.pl
# Run it-
script/*_server.pl -r -d

Если в настройке нет ничего сложного, вы получите http://localhost:3000/, работающий с вашим приложением.

Или, что, вероятно, является хорошей идеей, запустите приложение как веб-пользователь в настройках apache. Если для этого пользователя ожидаются файлы или доступ, это может быть важно (например, если файлы сеанса или кэша используются и ограничены пользователем) —

sudo -u www script/*_server.pl -r -d

Флаги включают вывод отладки и перезапуск, так что каждый раз, когда вы меняете файлы в приложении, сервер перезапускается автоматически (если он компилируется).

С Catalyst приятно работать, и сервер разработки является частью этого.

person Ashley    schedule 25.03.2011
comment
да, похоже, вы не используете сервер разработки. Что является путем к безумию. Потратьте пару часов на Catalyst::Manual::Tutorial, пожалуйста. - person singingfish; 26.03.2011