Я пытаюсь реконструировать базу данных с Propel reverse
команда. База данных, к которой я пытаюсь подключиться, требует SSL-сертификат, вот как я подключаюсь к ней в своем приложении:
new PDO(
'mysql:host=localhost;dbname=blog',
'root', '', array(PDO::MYSQL_ATTR_SSL_CA => '/path/ssl-cert.crt'
);
Мой конфигурационный файл Propel:
propel:
database:
connections:
blog:
adapter: mysql
classname: Propel\Runtime\Connection\ConnectionWrapper
dsn: "mysql:host=localhost;dbname=blog"user: root
password:
options:
PDO::MYSQL_ATTR_SSL_CA: /path/ssl-cert.crt
Я получаю следующую ошибку:
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
Unrecognized option "PDO::MYSQL_ATTR_SSL_CA" under "propel.database.connections.gateway.options"
Я прочитал этот пост: Безопасное подключение Propel, удаленный MySQL, первый ответ ссылку на старую версию Propel, и я также попробовал альтернативный ответ, заменив PDO::MYSQL_ATTR_SSL_CA
по его целочисленному значению. Ничего не получалось, у кого-нибудь была эта проблема раньше? Что мне не хватает?
Кажется, только ATTR_PERSISTENT
опция поддерживается на данный момент: PropelConfiguration
Это должно быть довольно легко раскошелиться и исправить что-то вроде:
->arrayNode('options')
->children()
->booleanNode('ATTR_PERSISTENT')->defaultFalse()->end()
->scalarNode('PDO::MYSQL_ATTR_SSL_CA')->end()
->end()
->end()
Я бы порекомендовал добавить этот скалярный узел прямо в ваш vendor/propel/propel/src/Propel/Common/Config/PropelConfiguration.php
и проверьте, есть ли какие-либо скрытые ошибки или отсутствующая функциональность.
Других решений пока нет …