Сделайте модули модулями — целостной подсистемой, после подключения которой не нужно раскидывать по всему сайту файлы с компонентами, картинками, шаблонами и пр. Модуль, с точки зрения разработчика, должен быть прост в установке и обновлении.
Структура модуля могла бы быть такой:
vendor.module/
admin/
lib/
components/
templates/ |
Итого:
- разработчику модуля не нужно при выпуске очередного обновления, например, компонентов, писать апдейтер, который будет копировать файлы из модуля в bitrix/components/vendor;
- все ресурсы модуля находятся в модуле.
Ограничение накладывает работа со статичными ресурсами: JS, CSS, изображения и т. п. Решить это можно через менеджер статики, который будет автоматически собирать статику.
PHP5 полное руководство, страница 41-42
Первая часть предложения думаю отпадет сама собой.
Вторая же часть очень сильно зависит от вашей IDE или того в чем вы открываете код.