У нас есть приложение, половина которого обслуживает свои страницы через древнюю PHP-архитектуру без фреймворка, а другая половина встроена в Symfony 2.3.
Я создаю контроллер для APIконечная точка в Symfony 2.3 в соответствии с более новой архитектурой, но мне нужно включить один из классов из унаследованного проекта.
Проблема: когда я импортирую класс унаследованного проекта MFQ
, PHP в видеSymfony жалуется, что не может найти текущий container
.
. Класс MFQ
содержит много необработанных запросов MySQL.Этот класс includes
другой унаследованный класс, который содержит следующее соединение с базой данных:
$container = $this->container;
$hostName = $container->getParameter('database_host');
$userName = $container->getParameter('database_user');
$password = $container->getParameter('database_password');
$dbName = $container->getParameter('database_name');
mysql_connect($hostName, $userName, $password) or die("Unable to connect to host $hostName");
mysql_select_db($dbName) or die("Unable to select database $dbName");
mysql_set_charset('utf8');
В соответствии с архитектурой Symfony, я буду использовать Doctrine ORM для своих запросов, чтобы облегчить доступ к локальному соединению MySQL.,Это предпочтительнее, чем переписать весь класс MFQ
для запроса через соединение MySQL Doctrine ORM.
К сожалению, когда платформа Symfony встречает $this->container
в устаревшем классе import
ed, она жалуется, что нетcontainer
контекст, из которого можно получить параметры соединения.
Я бы хотел include
класс НО - мои дорогие друзья: НО!НЕКОТОРЫЕ ... чтобы сделать это container
в курсе.Во-первых, возможно ли это?Во-вторых, как я могу подойти к этому?
Ваше понимание должно звучать эхом на протяжении всех вечностей.