Php Symfony 2:与另一个Symfony项目沟通

Php Symfony 2:与另一个Symfony项目沟通,php,symfony,sylius,Php,Symfony,Sylius,我们有自己的基于Symfony 2.4的框架,它基本上是一个Symfony2项目(几个捆绑包)。对于一个项目,我们需要一个webshop,为此我们选择了Sylius。因为我们自己的项目和Sylius与不同的版本有一些共同的依赖关系,我们不能让它们一起在一个项目中运行。我已经尝试过让它工作,但是错误和不匹配是无止境的,另外,Sylius使用了Symfony 2.3(这不是瓶颈,因为它可以升级到2.4) 现在,我们选择将Sylius作为一个独立的项目托管,并在两个项目上共享数据库。Sylius安装位

我们有自己的基于Symfony 2.4的框架,它基本上是一个Symfony2项目(几个捆绑包)。对于一个项目,我们需要一个webshop,为此我们选择了
Sylius
。因为我们自己的项目和Sylius与不同的版本有一些共同的依赖关系,我们不能让它们一起在一个项目中运行。我已经尝试过让它工作,但是错误和不匹配是无止境的,另外,
Sylius
使用了
Symfony 2.3
(这不是瓶颈,因为它可以升级到2.4)

现在,我们选择将Sylius作为一个独立的项目托管,并在两个项目上共享数据库。Sylius安装位于
/web/shop/
目录中,在浏览
http://example.com/shop/
。我们希望能够让这两个项目相互通信,如果我们能够在我们自己的框架内调用Sylius的一些服务,那就太好了,反之亦然

我曾尝试在Sylius中通过在服务中使用
require\u once
来实例化我们自己框架的
AppKernel
,但我所有的尝试都失败了,因为您无法在具有命名空间的类中使用
require\u once

我该怎么做呢

这是我尝试实现的无效服务,它产生了一个
PHP致命错误:不能将带括号的命名空间声明与未带括号的命名空间声明混合使用
异常:

namespace Sylius\Bundle\CoreBundle;    
use Symfony\Component\HttpKernel\Kernel;

class MyFrameworkBridge {

    private $framework;

    public function __construct(Kernel $kernel) {
        $root = $kernel->getRootDir();
        $ownFrameworkDir = $root.'/../../../../source/app';

        require_once $ownFrameworkDir.'/bootstrap.php.cache';
        require_once $ownFrameworkDir.'/AppKernel.php';

        $this->framework = new AppKernel('dev'); // never reaches this line
    }

}

您最好只对每个应用程序创建API调用并使用它们,而不是尝试将整个应用程序加载到另一个应用程序中。Chausser,谢谢您的回答。今天我将对此进行实验。也许你可以写一个答案,如果它有效的话,我会接受它。你有没有试着将一个项目的包注册到另一个项目中?同样,从另一个内核继承一个内核并调用
$bundles=array\u merge(parent::registerBundles(),…)
也可以。