2012-10-16 4 views
6

초심자와 doctrine. 방금 배 + 교리 2.3.3을 설치하고 테스트하고 싶습니다. 테스트 교리PHP Doctrine 초급 : 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 경로에 있는지 확인했습니다.

그러나 이것은 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.phar를 프로젝트 루트에 로컬로 설치하거나 PATH 시스템 변수 (/usr/local/bin/이 권장 폴더 임)에 선언 된 폴더에 전역으로 설치해야합니다.

그런 다음 프로젝트의 루트 폴더에있는 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/

희망이 의지 당신은 설정 자동 로딩에 잊었

관련 문제