(如果你只想查看解决方案,单击此处)
Laravel是迄今为止最流行的PHP框架,目录结构明确清晰,语法优雅。在中小型项目中使用Laravel提供的默认目录结构效果是非常好的,但是当有一个超过50个模型的大型应用,代码库可能就有点让人窒息。
维护一个大型的应用程序并不简单,尤其是当组织错乱,而Laravel的默认结构对这样的场景肯定没有很大帮助。
首先,我们看看Laravel默认结构以及它对大型应用程序的影响。
Laravel的默认应用程序结构:
|- app/
|- Console/
|- Commands/
|- Events/
|- Exceptions/
|- Http/
|- Controllers/
|- Middleware/
|- Jobs/
|- Listeners/
|- Providers/
|- User.php
|- database/
|- factories/
|- migrations/
|- seeders/
|- config/
|- routes/
|- resources/
|- assets/
|- lang/
|- views/
结构没什么问题。但是,当我们在大型应用程序中工作时,我们通常将业务逻辑划分为存储库、转换器等……如下所示:
|- app/
|- Console/
|- Commands/
|- Events/
|- Exceptions/
|- Http/
|- Controllers/
|- Middleware/
|- Jobs/
|- Listeners/
|- Models/
|- Presenters/
|- Providers/
|- Repositories/
|- Services/
|- Transformers/
|- Validators/
|- database/
|- factories/
|- migrations/
|- seeders
|- config/
|- routes/
|- resources/
|- assets/
|- lang/
|- views/
这显然是一个结构良好的Laravel项目。现在,让我们看看models文件夹:
|- app/
|- Models/