カスタムクラスでのエンティティ・マネージャ:カスタムクラスでのエンティティ・マネージャを使用する必要がある場合にはSymfony2のアクセス教義UPDATE
は、あなたがこの道を行くことができるが:
あなたのバンドルにこのコードを配置:
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\HttpFoundation\Request;
require_once DIR . '/../../../app/bootstrap.php.cache';
require_once DIR . '/../../../app/AppKernel.php';
class ApplicationBoot {
private static $kernel;
public static function getContainer() {
if(self::$kernel instanceof \AppKernel) {
if(!self::$kernel->getContainer() instanceof Container){
self::$kernel->boot();
}
return self::$kernel->getContainer();
}
$environment = 'prod';
if (!array_key_exists('REMOTE_ADDR', $_SERVER) || in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1', 'localhost'))) {
$environment = 'dev';
}
self::$kernel = new \AppKernel($environment, false);
self::$kernel->boot();
return self::$kernel->getContainer();
}
public static function shutDown() {
self::$kernel->shutdown();
}}
だから今は、EntityManagerをアクセスすることができます。
$container = ApplicationBoot::getContainer();
$entityManager = $container->get('doctrine')->getEntityManager();
「作業する」と言っているときに、サービスコンテナから取り出したり、クラスを新しくしようとしていますか? – Cerad
Cerad、new class – VitalyP
これはうまくいかないでしょう。私は自分の答えを更新しました。 – Cerad