2017-02-07 1 views
0

Я пытаюсь настроить Doctrine 2 как внешнюю библиотеку для моего проекта. Итак, я установил его Composer и выполнил инструкции по документации Doctrine. И командная строка не работает.Конфигурация командной строки Doctrine 2 как внешняя библиотека

Вот часть на доктрине в моем Bootstrap:

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

/* Instantiation of doctrine 
---------------------------------------------------------------------------------------------------------------------*/ 

$paths = array(__DIR__."/Application/Entity"); 
$isDevMode = true; 

// the connection configuration 
$dbParams = Yaml::parse(file_get_contents('Application/Config/Private/bdd.yml')); 

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

/*--------------------------------------------------------------------------------------------------------------------*/ 

Вот содержание моего файла кли-config.php (в корне проекта):

use Doctrine\ORM\Tools\Console\ConsoleRunner; 

require_once 'index.php'; // my bootstrap 



return ConsoleRunner::createHelperSet($em); 

Итак, теперь , в документации говорится, что я могу использовать Doctrine в режиме консоли, набрав: php vendor/bin/doctrine Но, когда я использую эту команду, она не выполняется. Я просто содержание доктрины файла:

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../doctrine/orm/bin" && pwd) 

# See if we are running in Cygwin by checking for cygpath program 
if command -v 'cygpath' >/dev/null 2>&1; then 
     # Cygwin paths start with /cygdrive/ which will break windows PHP, 
     # so we need to translate the dir path to windows format. However 
     # we could be using cygwin PHP which does not require this, so we 
     # test if the path to PHP starts with /cygdrive/ rather than /usr/bin 
     if [[ $(which php) == /cygdrive/* ]]; then 
       dir=$(cygpath -m "$dir"); 
     fi 
fi 

dir=$(echo $dir | sed 's/ /\ /g') 
"${dir}/doctrine" "[email protected]" 

PHP отлично работает, и я попытался установить проект Symfony (в командной строке тест) и командной строки работы с Symfony. Итак, я думаю, что проблема связана с установкой/настройкой Doctrine.

Я не знаю, что я пропустил, но я не могу использовать Doctrine по командной строке. У кого-нибудь есть идея?

ответ

0

Команда для доктрины, которую вы вызываете, не является файлом PHP, а скорее скриптом оболочки.

Звоните ./vendor/bin/doctrine, и оно должно работать должным образом.

+0

Я нахожусь на окнах. Если я попробую whith «Bash Ubuntu on windows», это сработает (Tanks это уже большой шаг). Но как я могу сделать, чтобы он работал в командной строке Windows? –

+0

Вы можете называть 'php vendor/doctrine/orm/bin/doctrine.php' или' sh vendor/bin/doctrine' – madshvero

+0

Спасибо, что это мне нужно. :) –

Смежные вопросы