I would think that it makes sense, but it will divide your modules into the level at which they are, and not what they do. For example, in this structure, if you want authentication and print modules, you have something like this:
/common /helpers /Authentication /AuthenticationService.php /Printing /PrintingService.php /domain /entities /Authentication /Identity.php /Printing /Printer.php /datamappers /Authentication /IdentityDataMap.php /Printing /PrinterDataMap.php
Having worked in such a system, I can say that on the one hand it is very difficult to maintain the boundaries between the modules due to meshing, simply because people work in layers and think of layers as βall together.β From an organizational point of view, I I donβt really like to have three root directories open for working with a specific module, we organize projects in directories to make it easier for us, not the compiler.
If I did this again, I would separate some things by layer, for example, user interface code on one level and business code on another, and then modulo. I believe it is more of a hybrid, but perhaps better for it.
/domain /Printing /entities /datamappers /repositories /Auth /entities /datamappers /repositories /ui /controllers /view
source share