Используем symfony вне проекта

Symfony framework

Автор: Александр Степанов

5 февр. 2013 г., 10:48:29  1004


Для того чтобы использовать функции симфони вне проекта нам необходимо подключить классы сифони:

require_once  'путь_до_библиотек/lib/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();

Дальше уже можем читать данные из yml:

$configFile = sfYaml::load('../../config/databases.yml');

Поключаем классы БД и сессий

$dispatcher = new sfEventDispatcher();
$storage = new sfSessionStorage();
sfCoreAutoload::getInstance()->autoload('sfUser');
sfCoreAutoload::getInstance()->autoload('sfMySQLDatabase');
$user = new sfUser($dispatcher,$storage);

Можем подключиться к БД

$database = new sfMySQLDatabase();
$database->loadParameters($configFile);
$database->connect();

Получаем текущего пользователя

$user_id = $user->getAttribute( 'user_id', null, 'sfGuardSecurityUser' );

Для того чтобы не подключать все библиотеки симфони, можно сделать так

$autoLoadClass = new sfSimpleAutoload(NULL);
sfCoreAutoload::autoload('sfGuardSecurityUser');
print_r(sfContext::getInstance()->getUser()->getAttribute( 'user_id', null, 'sfGuardSecurityUser' ));

Если вы использовали другие способы, пишите добавлю в пост