2012-10-16 13 views
6

私はdoctrineで初心者です。私はPear + Doctrine 2.3.3をインストールしてテストしたいと思っています。PHP Doctrine Beginner:Doctrine ORM Tools Setupが見つかりません

:私は私のbootstrap.phpのファイル、bootstrep_doctrine.phpとCLI-config.phpのファイルを作って、コマンドを実行し、「人」という後

/** 
* @Entity 
*/ 
class person 
{ 
    /** @Id @Column(type="integer") @GeneratedValue * */ 
    private $id; 

    /** @Column(type="string") * */ 
    private $name; 

    /** @Column(type="string") * */ 
    private $surname; 

    //some getters and setters ... 
} 

という名前のクラスを書いたテストの教義に

doctrine orm:schema-tool:create 

うまく動作します。

しかし、私は「人」を作成するために、「通常」のphpファイルで私のbootstrap.phpのを含めたいとき、今、私は次のエラーを取得する:

Fatal error: Class 'Doctrine\ORM\Tools\Setup' not found 
in /var/www/vms/bootstrap_doctrine.php on line 15 

次のようにファイルが見えます:

<?php 
$debug = true; 
if($debug){ 
    error_reporting(E_ALL); 
    ini_set("display_errors", "on"); 
    ini_set("display_startip_errors", "on"); 
} 
require_once '../bootstrap.php'; 

include_once ('testClassOrm.php'); 
$person = new person(); 
$person = new person(); 
$person->setName("Hans"); 
?> 

bootstrap.phpの:

if(!class_exists("Doctrine\Common\Version", false)){ 
    require_once 'bootstrap_doctrine.php'; 
} 

bootstrap_doctrine.php

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

$paths = array("entities/"); 
$isDevMode = true; 

// the connection configuration 
$dbParams = array(
    'driver' => 'pdo_mysql', 
    'user'  => 'TEST', 
    'password' => 'TEST', 
    'dbname' => 'test', 
); 

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode); 
$em = EntityManager::create($dbParams, $config); 

私は/ usr/share/pear /がphp_includeパスにあるかどうかを確認しました。

が、この1はfalseを返しません:

use Doctrine\ORM\Tools\Setup; 
var_dump(class_exists('Setup', false)); 

私が何か間違ったことをやっているし、それが

require_once 'System.php'; 
var_dump(class_exists('System', false)); 

それはtrueを返します。..ですか?

よろしく

+0

役立ちます! ORMをどのようにインストールしましたか? – Ocramius

答えて

3

はい、それは、オートローディングが欠落していると思われ、自動ロードする最も簡単な方法あなたのクラスも、そのような教義としての依存関係をダウンロードすることができComposerを使用することです。これを行うには、プロジェクトルートにローカルにインストールするか、PATHシステム変数(/usr/local/bin/が推奨フォルダです)で宣言されたフォルダにグローバルにインストールされたcomposer.pharを入手する必要があります。

次に、プロジェクトのルートフォルダにあるcomposer.jsonファイルを編集する必要があります。このファイルでは、プロジェクトの依存関係と、読み込み可能なクラスパスを定義します。

{ 
    "require": { 
     "Doctrine/ORM": "2.3.3" 
    }, 
    "autoload": { 
     "psr-0": {"MyProject\\Models\\": "src/models/"} 
    } 
} 

次に、あなたがしなければならないすべてはあなたのプロジェクトのルートフォルダとタイプcomposer installからターミナルを開くことです。これにより、ダウンロードされたすべての依存関係を含むベンダーフォルダーが作成されます。また、このベンダフォルダにautoload.phpというファイルがあります。自動ロードセクションで宣言したすべての依存関係とすべての依存関係を使用できるようにするには、このオートローダーをphpファイルに含めるだけで済みます。 https://getcomposer.org/ あなたがここにも利用可能なパッケージを閲覧することができます:

あなたはここで作曲の詳細に関する情報を得ることができます https://packagist.org/

・ホープ、この意志はあなたがセットアップオートローディングに忘れてしまった

関連する問題