Bonjour,
Voila je rencontre un petit problème avec mon code.
à la racine de mon App :
require '../vendor/autoload.php';
$instanceLib = Namespace\ClientBuilder::create();
Charger :
$instanceLib
Dans un controller bien précis de mon application,
namespace App\Controller\Api;
class Home extends AppController{
public function index(){
require '../../../vendor/autoload.php'; // le path est ok around
$instanceLib = Namespace\ClientBuilder::create();
...
}
}
je suis un peu perdu avec l'autoload de composer, si vous avez une idée..
Merci à vous !
Salut,
L'autoloader se charge normalement dans ton index.php de telle sorte que les classes soient disponibles partout.
Salut,
Merci du retour, j'ai testé de mettre L'autoloader dans le index.php en laissant l'appel de la class dans le controller Mais nop...Marche pas...
"Marche pas..." c'est un peu vague comme retour, peux-tu nous préciser l'erreur retournée par PHP stp ?
une belle erreur 500, je suis un peu dans le noir c'est un nouveau serveur et les erreurs php ne s'affichent pas il faut qu'on le parametre...
Erreur 500 = Internal server error, donc ça peut être n'importe quoi. Tu n'as pas moyen d'afficher les logs erreurs apache ou nginx ?
Ok, je viens de regarder les logs, et en fait j'ai un Factory qui gere déjà des autoloads, et du coup ya conflit d'autoloader,
il tente de charger /App/Controller/Api/ClientBuilder.php
or qu'il est dans ../vendor/Malib/dossier1/dossier2/ClientBuilder.php
il faudrait que dans mon app je lui dise de ne pas tenter d'autoloader : $instanceLib = Namespace\ClientBuilder::create();
car il l'autoload dans index .php,
je ne vois pas comment faire ca.
j'ai fais un gris gris, dans mon autoload de App, j'ai bloqué le chargement de la class et comme ca c'est celui de composer qui s'en occupe...
ca fonctionne mais si qq un à plus propore je prends ;) !