Используйте PDO :: MYSQL_ATTR_SSL_CA с Propel ORM

Я пытаюсь реконструировать базу данных с 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 по его целочисленному значению. Ничего не получалось, у кого-нибудь была эта проблема раньше? Что мне не хватает?

3

Решение

Кажется, только 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 и проверьте, есть ли какие-либо скрытые ошибки или отсутствующая функциональность.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]