Как включить менеджер сущностей доктрины в файлы, созданные с помощью View?

Я использую мини php MVC. Переменные от bootstrap не включены в сгенерированный view, Я могу включить entityManager в index.php,
но я не могу включить entityManager для просмотра файлов. Зачем? Как включить менеджер сущностей доктрины в файлы, созданные с помощью View?

Как включить менеджер сущности в _register1Db.php файл ниже?
Представление отображается правильно, в нем не отображаются ошибки, что bootstrap.php не найден (если я изменяю путь, отображается такая ошибка), но представление не включает в себя менеджер сущностей из bootstrap.php

// 1. \ SRC \ bootstrap.php

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

$isDevMode = true;
$entitiesPaths = array(__DIR__.'/CrmBundle/Entity');

$dbParams = array(
'dbname' => 'dbname',
'user' => 'user',
'password' => 'pswd',
'host' => 'localhost',
'driver' => 'pdo_mysql',
);   // 'pdo_mysql',$config = Setup::createAnnotationMetadataConfiguration($entitiesPaths, $isDevMode);
$em = \Doctrine\ORM\EntityManager::create($dbParams, $config);

$some='some';

// 2. \ Public \ index.php

require_once '../src/bootstrap.php'; //which requires autoload.php
print_r('<br><br> index some='.$some); // works
var_dump($em);  //works
use core\App;
$app = new App(); //App from urk identifines controller and action and pass url paramteters to them, controller action analize parameters and displays views, in this case  security\register

// 3. SRC \ CrmBundle \ Resources \ Views \ безопасность \ register.php

include ('_register1Db.php');

// 4. ЦСИ \ CrmBundle \ Resources \ Views \ security_register1Db.php

require_once '/../../../../bootstrap.php';  //
var_dump($em);  // Undefined variable: em
print_r('<br><br> register some='.$some); //Undefined variable: some

// То, как я генерирую представление: src \ core \ View.php

ob_start();
include_once( __DIR__.'/../bootstrap.php' );
include_once( $this->viewTemplatePath.$this->file );
ob_end_flush();

// просмотр генерации с отладочными переменными из bootstrap.php: src \ core \ View.php

    include_once( __DIR__.'/../bootstrap.php' );
ob_start();
// think how to render extract variable in order to pass to the file
include_once( __DIR__.'/../bootstrap.php' );
var_dump($em);  //undefined
print_r('<br><br> parseViewPhpinside some=' . $some); //undefined
print_r('<br><br> parseViewPhpinside __DIR__=' . __DIR__);  // ....apache2\htdocs\own\log\src\core
include_once( $this->viewTemplPath.$this->file );
if($store) return ob_get_clean();
else ob_end_flush();
var_dump($em);  //undefined
print_r('<br><br> parseViewPhp some='.$some);  //undefined

0

Решение

Это решение заставить вещи работать, но не ответ.

Решение было создать файл dbcon.php и включить его в register.php или же register1Db.php ,

// содержимое dbcon.php

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

$isDevMode = true;
$entitiesPaths = array(__DIR__.'/CrmBundle/Entity');
$dbParams = array(
'dbname' => 'dbname',
'user' => 'user',
'password' => 'pswd',
'host' => 'localhost',
'driver' => 'pdo_mysql',
);   // 'pdo_mysql',
$config = Setup::createAnnotationMetadataConfiguration($entitiesPaths, $isDevMode);
$em = \Doctrine\ORM\EntityManager::create($dbParams, $config);

print_r('<br><br> end of dbcon.php ');

Я не понимаю, почему не работает, если я включаю bootsrap.php?
Но это работает, если я включаю аналогичное содержимое из другого файла.

Возможно, потому что я уже включил его один раз в index.php, который создает объект App.php, который отображает файлы представлений, тогда как упомянутые файлы представлений не включают в себя bootsrap во второй раз, потому что похоже, что bootstrap уже включен, хотя переменные недоступны ?

Что может быть причиной?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]