Porto架构下APIATO应用中重写Composer安装类的存放位置咨询
Apiato 第三方库重写类存放位置
按照Apiato的框架约定,你重写的自定义类统一放在 app/Ship/Extensions/ 目录下即可。这个目录是专门用来存放所有对第三方依赖、框架核心类的扩展、重写逻辑的专属目录,完全独立于Composer管理的vendor目录,后续执行composer update也不会覆盖你写的自定义代码。
配套配置步骤
- 先记录你要重写的第三方类的完整命名空间,比如原类为
ThirdParty\Api\Client - 在
app/Ship/Extensions/下创建和原类命名空间对应的目录结构,比如你的重写类可命名为App\Ship\Extensions\ThirdParty\Api\CustomClient,直接继承原第三方类后,在类内添加你的自定义逻辑即可 - 如果你整个项目都要使用重写后的类替换原类,需要在
app/Ship/Providers/AppServiceProvider.php的register方法中添加容器绑定:
$this->app->bind( \ThirdParty\Api\Client::class, \App\Ship\Extensions\ThirdParty\Api\CustomClient::class );
- 如果只有部分业务场景需要用到重写类,直接在对应业务代码里引用你写的自定义类即可,无需修改容器绑定。
注意:绝对不要直接修改vendor目录下的第三方库源代码,所有修改会在下次执行composer相关安装/更新命令时被覆盖,完全无法维护。
内容的提问来源于stack exchange,提问作者Feniksss
相关产品推荐
相关产品推荐

