Chapter 10. Development Environments
We’ve already seen some examples of how you can modify RT’s behavior through custom scrips, templates, and actions, but RT can be customized even further. You also may need to work on RT’s core code, either to develop features to submit back to the core developers or to fix bugs that you find.
DevelMode
Enabling RT’s development allows several features that make developing RT and RT extensions much simpler. There are several ways you can do this. You can enable RT’s “developer mode” feature when running the configure script by adding the —with-devel-mode switch.
You also can edit the etc/RT_SiteConfig.pm file to include this line:
Set($DevelMode => 1);
The —with-devel-mode configuration option simply adds this line to the etc/RT_Config.pm file.
Turning on development mode disables the static_source and use_object_files Mason features, which means that components are re-parsed for every request. This guarantees that changes to components will be seen immediately.
It also enables the use of Module::Refresh, which checks for changes to modules on each new request. Without this, it would be necessary to restart the HTTP server every time a module was changed.
Modifying RT’s Codebase
Most of RT’s core classes are designed to allow you to customize their behavior through a mechanism called overlays. You also can use subclasses in some cases, or modules such as Damian Conway’s Hook::LexWrap.
Overlays
Overlays are the easiest way to make major changes to RT’s ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access