Создание сопоставленных объектов ORM без кли?
Я работаю над проектом apiglity, который использует Zend Framework 2 и доктрину.
я включил в local.config.php моего проекта zf2 следующий код:
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => 'localhost',
'port' => '3306',
'user' => '<username>',
'password' => '<password>',
'dbname' => '<db>',
)
)
)
),
);
в конфигурационном файле моего основного модуля (module.config.php) я включил следующий код:
'doctrine' => array(
'driver' => array(
__NAMESPACE__ . '_driver' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
)
)
)
)
Я прочитал следующий URL: http://samsonasik.wordpress.com/2013/04/10/zend-framework-2-generate-doctrine-entities-from-existing-database-using-doctrinemodule-and-doctrineormmodule/
и он говорит, что для создания сущностей из моей базы данных мне нужно использовать vendor/bin/doctrine-module
,
Когда я пытаюсь выполнить doctrine-module, я получаю следующую ошибку:
PHP Fatal error: Uncaught exception 'Zend\ServiceManager\Exception\ServiceNotFoundException' with message 'Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for doctrine.cli' in /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:529
Stack trace:
#0 /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/doctrine/doctrine-module/bin/doctrine-module.php(51): Zend\ServiceManager\ServiceManager->get('doctrine.cli')
#1 /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/doctrine/doctrine-module/bin/doctrine-module(4): include('/mnt/storage/ho...')
#2 {main}
thrown in /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 529
Fatal error: Uncaught exception 'Zend\ServiceManager\Exception\ServiceNotFoundException' with message 'Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for doctrine.cli' in /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:529
Stack trace:
#0 /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/doctrine/doctrine-module/bin/doctrine-module.php(51): Zend\ServiceManager\ServiceManager->get('doctrine.cli')
#1 /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/doctrine/doctrine-module/bin/doctrine-module(4): include('/mnt/storage/ho...')
#2 {main}
thrown in /mnt/storage/home/ufk/projects/myalcoholist-apigility/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 529
прочитав следующий вопрос о переполнении стека: Apigility - Как использовать Doctrine ORM Module из командной строки ZF2
Я понял, что клиент doctrine-module не нужен, и я должен выполнить
php public/index.php orm:info
для того, чтобы увидеть статус учения.
при выполнении этого я получаю следующее сообщение об ошибке:
[Exception]
You do not have any mapped Doctrine ORM entities according to the current configuration. If you have entities or
mapping files you should check your mapping configuration for errors.
это потому, что я создал папку Entities, и она пуста.
Теперь вопрос в том, как мне создать сущности на основе базы данных, если я не могу использовать модуль doctrine?
1 ответ
'paths = = array (DIR.' /../src/ '. NAMESPACE.' / Entity ')
Я не понимаю этот путь.. Можете ли вы попробовать простой путь? Например
__DIR__.'/../src/YourModule/Entity'
И запишите свою сущность в модуль YouModule, в src/YouModule/Entity