我希望创建自己的作曲家包,但在此之前,我正在努力更好地理解应该如何组织它,尤其是与继承的抽象类相关的。
假设我有一些特定的项目,例如:
-
轿车、跑车等
-
V6电机、V8电机等
-
自动变速器、四速变速器等
对于这些项目中的每一个,我都有控制器类、模型类、实体类和其他类。
我还拥有抽象类,如carcontroller、carmodel等,motorcontroller、motormodel等,这些抽象类是从使用继承扩展而来的。
然后,组合将用于向汽车中注入零件、向控制器中注入模型等。
应该如何组织目录文件结构以及应该为这个场景使用什么名称空间?
我并不期望下面的内容是正确的,但我将尝试一下,以便您更好地了解我对这个主题的当前理解水平。我读过描述按特性分组和/或按原型分组的文章,我认为我应该首先按特性分组。以下假定命名空间名称为
MyVendorName
,的子命名空间名称
Car
和的文件路径
/var/www/vendor
.
也许我会这样做:
/var/www/vendor/my-vendor-name/src/Car/Controllers/AllMyAbstractControllers.php
/var/www/vendor/my-vendor-name/src/Car/Models/AllMyAbstractModels.php
/var/www/vendor/my-vendor-name/src/Car/Entities/AllMyAbstractEntities.php
/var/www/vendor/my-vendor-name/src/Car/Cars/SportsCar/AllSpecificSportsCar_Controller_Model_Entity_Classes.php
/var/www/vendor/my-vendor-name/src/Car/Cars/SedanCar/AllSpecificSedanCar_Controller_Model_Entity_Classes.php
/var/www/vendor/my-vendor-name/src/Car/Motors/V6Motor/AllSpecificV6Motor_Controller_Model_Entity_Classes.php
/var/www/vendor/my-vendor-name/src/Car/Motors/V8Motor/AllSpecificV8Motor_Controller_Model_Entity_Classes.php
etc, etc...
那么,我可以
\MyVendorName\Car\Cars\SportsCar\SportsCarController.php
延伸
\MyVendorName\Car\Controllers\CarController.php
.
我相信以上是错误的,只是举个例子。抽象继承文件应该如何与PSR-4和Composer一起组织?