web-dev-qa-db-fra.com

Comment inclure des bibliothèques externes dans CodeIgniter?

Je suis nouveau sur codeigniter et j'essaie d'intégrer le FPS d'Amazon à ma page. Amazon FPS contient un grand nombre de bibliothèques et de modèles que je devrais inclure pour effectuer les appels appropriés.

Comment puis-je les inclure dans CodeIgniter?

J'ai essayé de placer l'intégralité du dossier Amazon dans le répertoire system/libraries, puis d'inclure les bibliothèques avec $ this-> load-> library ('Amazon/FPS/Client'); Cependant, je rencontre des problèmes avec le chemin relatif, car Client.php contient l'instruction require_once ('Amazon/FPS/Interface.php'); ... qui est dans le même dossier.

Il doit y avoir un meilleur moyen de faire tout cela - quelqu'un peut-il aider s'il vous plaît?

Merci!!

25
itwasthewind

Rien ne vous empêche d'inclure directement les classes et de les utiliser, mais vous le feriez dans une configuration Vanilla PHP. Si cela fonctionne dans PHP, cela fonctionnera dans CodeIgniter.

include(APPPATH.'libraries/Amazon/FPS/Interface.php');
34
Phil Sturgeon

Peng Kong de a3m http://code.google.com/p/a3m/ a une bonne façon de le faire avec des plugins:

Exemple Twitter_pi.php

require_once (APPPATH.'modules/account/plugins/bibliothèques/jmathai-Twitter-async/EpiCurl.php '); require_once (APPPATH.modules/account/plugins/bibliothèques/jmathai-Twitter-async/EpiOAuth .php '); require_once (APPPATH.' modules/compte/plugins/bibliothèques/jmathai-Twitter-async/EpiTwitter.php ');

/ * Fin du fichier Twitter_pi.php // Emplacement: ./system/application/modules/account/plugins/Twitter_pi.php * /

Dans le contrôleur

$ this-> load-> plugin ('Twitter'); $ twitterObj = nouvel EpiTwitter ($ this-> config-> item ('Twitter_consumer_key'), $ this-> config-> item ('Twitter_consumer_secret '));

Il y a un problème avec ceci dans Codeigniter 2.0: il n'y a pas de plugins

3
Dave

Oh oui, codeigniter est agréable et supporte également de nombreuses bibliothèques. Veuillez regarder ici http://www.haughin.com/code/ Inclure le service Amazon comme ceci $this->load->library('s3');

2
streetparade

@ user3526 Notez que $ this-> load-> library ('classname') créera une instance de cette classe chargée, pas seulement file (class) include.

0
bpile