Я создаю пакет, который предназначен для извлечения данных из вторичной базы данных. Я не уверен, какие другие конфигурации я могу добавить или изменить, чтобы сделать эту работу. Я также попытался передать соединение напрямую в хранилище. В идеале инструмент, использующий пакет, мог бы просто передать хранилище в качестве параметров и легко использовать его.
Приведенная ошибка:
The class 'SRC\SRC\DataBundle\Entity\Course' was not found in the chain configured namespaces
doctrine.yml
файл в инструменте, который импортирует пакет. SECONDARY_DATA - это то, что я пытаюсь подключить менеджером сущностей к файлу
doctrine:
dbal:
default_connection: default
connections:
default:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.6'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(DATABASE_URL)%'
SECONDARY_DATA_CONN:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.6'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(SECONDARY_DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: default
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
connection: default
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
SECONDARY_DATA:
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: SECONDARY_DATA_CONN
auto_mapping: false
services.yml
основного инструмента. Я изменил некоторые пути и имена из соображений конфиденциальности.
SRC\SRC\DataBundle\Entity\Repository\CourseRepository:
alias: 'src.src.data_bundle.course.repository'
services.yml
файл для комплекта
services:
src.src.data_bundle.course.repository:
class: SRC\SRC\DataBundle\Entity\Repository\CourseRepository
factory: ['@doctrine.orm.SECONDARY_DATA_entity_manager', getRepository] # where i believe the entity manager will know to use the correct database
public: false
arguments:
- 'SRC\SRC\DataBundle\Entity\Course'
Файл хранилища
namespace SRC\SRC\DataBundle\Entity\Repository;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
class CourseRepository extends ServiceEntityRepository
{}