Interagir avec eZ Publish legacy depuis une commande Symfony

Un petit bout de code bien utilé qui permet de faire appel au legacy d’eZ Publish via une action Symfony.

<?php
protected function execute(InputInterface $input, OutputInterface $output) { 
    $repository = $this->getContainer()->get('ezpublish.api.repository');
    $legacyKernel = $this->getContainer()->get('ezpublish_legacy.kernel');

    // UserID of the Default Admin User
    $userID = 14; 
    $user = $repository->getUserService()->loadUser( $userID );
    $repository->setCurrentUser( $user );
    
    $result = $legacyKernel()->runCallback(
        function () use( $userID ) 
        {
            $currentuser = eZUser::currentUser();
            $currentuser->logoutCurrent();
            $user = eZUser::fetch( $userID ); 
            $user->loginCurrent();
 
            return  \eZUser::currentUserID();
        }
    );

    $output->writeln( $result );
}

Voir aussi

A la une
  • Rencontre du numérique 2019 - Nîmes
  • référencement naturel d'un hôtel
  • Développeur eZ Platform
  • Tech lead Symfony
  • Expert Qualité Web

Copyright - Sylvain FIX

2009 - 2019