0

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

现在我们选择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
    }

}
4

0 回答 0