Я немного подумал о структуре каталогов, которую я использую для своей библиотеки в данный момент. Я не очень доволен видом этого, и это не правильно.
В своей структуре я склонен группировать занятия, которые преследуют одну и ту же цель / цель. Поскольку я сгруппировал классы по их назначению, я поместил их в слои приложения.
Таким образом, связанные с базой данных классы могут быть найдены только в каталоге Infrastructure
и будут сгруппированы с классами веб-сервиса, так как они оба имеют целью предоставить интерфейс для Repository
. Но я не уверен, что названия этих слоев не должны Presentation
быть UI
и не должны Response
переходить на слой Controller
? Такие вещи, я просто не уверен, что это * это *
Это моя текущая структура каталогов для моей библиотеки:
/Application/
/Route/
Route.php
Controller.php
Request.php
Router.php
/Core/
/Error/
Exception.php
Handler.php
/Loader/
TokenLoader.php
Bootstrap.php
Loader.php
/Domain/
/Model/
Entity.php
ValueObject.php
Model.php
Repository.php
/Infrastructure/
/Source/
/Adapters/
MySQL.php
SOAP.php
Database.php
WebService.php
Source.php
/Presentation/
/Response/
HTMLResponse.php
RedirectResponse.php
XMLResponse.php
/View/
/Helper/
TitleHelper.php
Helper.php
Response.php
View.php
Эта структура - только структура, которую я склонен использовать для своей библиотеки.
Когда я настраиваю приложение, структура выглядит так:
/Application/
/<name>/
/Core/
Bootstrap.php
/User/
/Model/
User.php
/Mapper/
UserMapper.php
<etc, etc, etc>
/Backup/
/Docs/
/Library/
/<vendor>/
<structure listed above>
У кого-нибудь есть советы для меня или у вас такая же проблема / чувство?
Пожалуйста, скажите мне, почему вы не используете ту же структуру каталогов или почему я должен преобразовать мою структуру во что-то другое!