我正在尝试在 Symfony 4.0 中使用DoctrineMongoDBBundle
。我能找到的唯一文档is for Symfony 3。
Symfony 4 没有parameters.yml
或config.yml
。
如何配置 Symfony 4.0 以使DoctrineMongoDBBundle
正常工作?
答案 0 :(得分:1)
@ jmleroux的建议是对的
要在symfony 4.0 + php7.2.1中安装DoctrineMongoDBBundle,应该完成一些额外的步骤。
将以下内容添加到composer.json
请注意," alcaeus / mongo-php-adapter":" ^ 1.1"仅在您使用php7
时才需要答案 1 :(得分:0)
特定的MongoDB配置现在应该位于config/packages
中的专用文件中,并且内容与SF3 app/config/config.yml
相同。
对于mongodb_server
参数,您可以在config/services.yml
部分下的parameters
中进行设置,但最好是使用Doctrine configuration之类的环境变量。
答案 2 :(得分:0)
这是我在debian系统上运行它的步骤。
apt-get update && apt-get install --assume-yes wget gnupg gnupg2
apt -y install lsb-release apt-transport-https ca-certificates
wget https://packages.sury.org/php/apt.gpg
apt-key add apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.4.list
apt-get update
apt-get install -y php7.2 php7.2-cli php7.2-common php7.2-dev php7.2-mysqli php7.2-xml php7.2-mbstring
apt-get install -y php-pear
pecl install mongodb
echo "extension=mongodb.so" >> /etc/php/7.2/cli/php.ini
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/mongodb-odm-bundle": "^3.0",
"doctrine/mongodb-odm": "^1.2.0"
doctrine_mongodb:
default_commit_options: ~
auto_generate_proxy_classes: '%kernel.debug%'
auto_generate_hydrator_classes: '%kernel.debug%'
connections:
default:
server: '%env(MONGODB_URL)%'
options:
username: '%env(MONGODB_USERNAME)%'
password: '%env(MONGODB_PASSWORD)%'
default_database: '%env(MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Document'
prefix: App\Document\
alias: App
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB=databasename
MONGODB_USERNAME=username
MONGODB_PASSWORD=password
Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle::class => ['all' => true],
composer update && composer install