Во многих фреймворках и приложениях вы обнаружите, что Model = Business Object и что часто Mapper интегрируется в некую единственную базовую модель, которую расширяют все остальные. Вы также обнаружите, что многим из них не хватает четко определенного уровня обслуживания.
Это ответит на ваш второй вопрос о картографе и обслуживании. Я обычно не использую сервисный уровень, но в идеале ваш маппер должен получать данные из БД, которые, как я полагаю, обычно находятся на сервисном уровне, а затем отображать эти данные в бизнес-объекты. Тем не менее, при использовании преобразователя я часто интегрирую специфичную для таблицы логику БД непосредственно в преобразователь в частной или защищенной области.
Однако в большинстве случаев я использую ORM, который обычно реализует Active Record, так что нет реальной изоляции картографа как такового с точки зрения того, как вы его описываете, а затем, как правило, работает так, как я описал выше в моем первом абзаце. .
Также Joomla, вероятно, не лучшее приложение для изучения этих концепций. На самом деле большинство PHP-приложений, подобных этому, не очень хорошие примеры, будь то Joomla, PHPBB, Drupal или другие: -)