You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现不同服务器上两个Symfony项目的Entity/Repository跨调用?

问题分析与解决方案

你用ftp://路径配置Symfony服务资源的方式完全行不通,Symfony的服务加载只能处理本地文件系统的类文件,没法直接通过FTP远程加载代码。报错里的“连接被拒绝”大概率是目标服务器没开FTP服务,但就算开了,这种方式也不符合Symfony的服务加载逻辑,绝对不能这么干。

针对跨服务器Symfony项目共享Entity/Repository的需求,给你几个可行的方案:

  • API接口调用(推荐):在目标项目里把需要调用的Repository业务逻辑封装成REST API接口,比如要获取用户数据就写个/api/users/{id}接口。然后在发起调用的项目里用Guzzle这类HTTP客户端请求这个接口,拿到返回的数据。这种方式完全解耦两个项目,安全又符合分布式架构的设计思路。
  • 共享Composer包:把两个项目共用的Entity和Repository抽成独立的Composer包,放到私有Composer仓库(或者本地仓库),然后两个项目都通过Composer安装这个包。这样两边用的是同一套代码,共享数据库的话直接操作自己项目里的这个包就行,不需要跨服务器调用代码。
  • 直接操作数据库(不推荐):如果嫌上面两种方式麻烦,也可以在调用方项目里配置指向共享数据库的连接,自己写对应的Entity和Repository(或者复制目标项目的代码),直接操作数据库。但这种方式会导致代码重复,后期维护成本高,还会让两个项目耦合严重,不建议在生产环境用。

内容的提问来源于stack exchange,提问作者adahox_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:25:15