Je tente de charger un fichier d'authentification PHP dans mon contrôleur Symfony.Erreur lors du chargement du fichier PHP dans le contrôleur Symfony
Je dois l'utiliser avec require_once
(impossible de le copier). Il contient une classe pour l'identification sur mon site Web.
C'est ce que j'ai essayé jusqu'à présent:
/**
* @Route("/login")
* @Template()
*/
public function loginAction()
{
require_once("/usr/share/php/ariseid/client/OAuthAriseClient.php");
require_once("./config.inc.php");
$consumer = OAuthAriseClient::getInstance($consumer_key, $consumer_secret,$consumer_private_key);
$consumer->authenticate();
if ($consumer->has_just_authenticated()) {
session_regenerate_id();
$consumer->session_id_changed();
}
if ($consumer->is_authenticated()) {
$results = $consumer->api()->begin()
->get_identifiant()
->done();
try {
$_SESSION['AriseID'] = $results[0]();
}
catch(OAuthAPIException $e) {
echo "Erreur : ".$e->getMessage();
}
}
return $this->render('SlothBundle:Default:index.html.twig', array(
'islogged' => $consumer->is_authenticated(),
));
}
C'est l'erreur que je reçois:
CRITICAL - Fatal Error: Class'SlothBundle\Controller\OAuthAriseClient' not found Context: {"type":1,"file":"/home/users/assoces/separatiiste/html/src/SlothBundle/Controller/DefaultController.php","line":39,"level":-1,"stack":[{"function":"loginAction","type":"->","class":"SlothBundle\Controller\DefaultController","file":"/home/users/assoces/separatiiste/html/app/bootstrap.php.cache","line":3109,"args":[]},{"function":"call_user_func_array","file":"/home/users/assoces/separatiiste/html/app/bootstrap.php.cache","line":3109,"args":[]},{"function":"handleRaw","type":"->","class":"Symfony\Component\HttpKernel\HttpKernel","file":"/home/users/assoces/separatiiste/html/app/bootstrap.php.cache","line":3071,"args":[]},{"function":"handle","type":"->","class":"Symfony\Component\HttpKernel\HttpKernel","file":"/home/users/assoces/separatiiste/html/app/bootstrap.php.cache","line":3222,"args":[]},{"function":"handle","type":"->","class":"Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel","file":"/home/users/assoces/separatiiste/html/app/bootstrap.php.cache","line":2444,"args":[]},{"function":"handle","type":"->","class":"Symfony\Component\HttpKernel\Kernel","file":"/home/users/assoces/separatiiste/html/web/app_dev.php","line":29,"args":[]},{"function":"{main}","file":"/home/users/assoces/separatiiste/html/web/app_dev.php","line":0,"args":[]}]}
J'ai essayé avec le compositeur, mais il retourne la même erreur. Qu'en est-il de l'utilisation de composer pour charger votre fichier?
require_once? dans Symfony oO c'est absurde .. Comment jamais dans votre cas vous êtes dans un espace de noms et si vous voulez appeler OAuthAriseClient vous devez mettre une barre oblique avant \ OAuthAriseClient ... – Svetoslav
merci ça fonctionne peut-on m'expliquer pourquoi? et si c'est absurde, j'aimerais savoir pourquoi et comment le corriger. merci – Sky
Vous pouvez lire pour PHP Namespacing à la documentation de php.net. La chose absurde en fait n'est pas vraiment faux, mais je ne peux pas vous expliquer :) Je ne suis pas bon professeur .. – Svetoslav