Я храню весь библиотечный код, включая модели, в / library. ИМО, вот для чего это. Затем, если вам нужно совместно использовать библиотеки (включая модели) между приложениями, вы можете сделать это с помощью одного подмодуля символической ссылки или git:
Ваше локальное приложение:
/myapp/application/
/myapp/public/
/myapp/library/
/myapp/library/MyApp/
Вытягивание внешних зависимостей:
/myapp/library/OtherLib (git submodule of a separate repo)
/myapp/library/ExtraLib (symlink to /path/to/ExtraLib/)
Или:
set_include_path(get_include_path() . ':/path/to/ExtraLib')
Если вы отделите модели от библиотеки, у вас будет две точки монтирования для каждой зависимости.