Symfony 2:与另一个Symfony项目进行通信

时间:2014-03-27 16:16:14

标签: php symfony sylius

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

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

我已尝试在服务中使用AppKernel在Sylius中实例化我们自己的框架的require_once,但我的所有尝试都失败了,因为在课堂上你不能require_once使用命名空间。

我将如何完成这项工作?

这是我尝试实施的无效服务,产生了PHP Fatal error: Cannot mix bracketed namespace declarations with unbracketed namespace declarations例外:

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
    }

}

0 个答案:

没有答案