2017-02-22 36 views
0

私はミニPHP MVCを使用しています。変数bootstrapは生成されたviewに含まれていません。 entityManagerindex.php、 を含めることができますが、ファイルを表示するにはentityManagerを含めることができません。どうして? Viewによって生成されたファイルにDoctrine Entity Managerを含めるにはどうすればよいですか?Viewによって生成されたファイルにdoctrineエンティティマネージャを含めるには?

下記の_register1Db.phpファイルにエンティティマネージャを含めるにはどうすればよいですか? ビューが適切に表示され、bootstrap.phpが見つからないというエラーは表示されません(i chanegパスの場合など)。ビューには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 \ security \ register.php

include ('_register1Db.php'); 

// 4です。 SRC \ CrmBundle \リソース\ security_register1Db.php

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

//私はビュー生成方法:のsrc \コアを\ブートストラップからデバッグ変数とView.php

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

//ビュー生成.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に含めることでした。私はbootsrap.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 '); 

//内容は、私は理解していませんか? しかし、私は別のファイルから同様の内容を含める場合に動作します。

これは既にビューファイルを表示するオブジェクトApp.phpを作成するindex.phpに既に含まれていますが、このビューファイルにはブートストラップは含まれていませんが、変数は利用できませんか?

どのような理由があることだろうか?

関連する問題