Для реализации сходных функций в нескольких приложениях удобно хранить логику таких функций в собственном наборе классов и использовать методы таких классов в каждом приложении. При таком способе организации общего исходного кода удобно вносить в него изменения, изменяя файл класса в единственном экземпляре без необходимости внесения одинаковых изменений в исходный код нескольких приложений.
Общие пользовательские классы следует размещать в собственной поддиректории внутри wa-system/vendors/
, например, в wa-system/vendors/custom/
.
Для того чтобы общие пользовательские классы стали доступны во всех приложениях фреймворка, необходимо включить файлы таких классов в автозагрузку, указав пути к ним в конце конфигурационного файла wa-config/SystemConfig.class.php
(содержимое этого файла не перезаписывается при установке обновлений), как показано в примере:
waAutoload::getInstance()->add([ 'MyClass1' => 'wa-system/vendors/custom/MyClass1.class.php', 'MyClass2' => 'wa-system/vendors/custom/MyClass2.class.php', ... ]);