2012-03-12 14 views
8

Buon giorno ragazzi. La mia domanda è un po 'generica: Come posso adattare qualsiasi libreria PHP (come ad esempio facebook sdk per esempio) da usare in CodeIgniter?Come adattare una libreria PHP a Codeigniter?

In genere, quando si scarica una libreria PHP e guardare agli esempi forniti, si caricare la libreria usando includono o require_once. Quali sono le regolazioni (e le modalità) per usare $ this-> load-> library ($ name, $ params)?

E come posso utilizzare la libreria dopo questo: sostituzione di $ var = nuova libreria ($ dati) entro ???

Se la mia domanda non è ancora chiara, si prega di avvisare me.

(domanda bonus:? Come applicare questo a facebook-sdk)

Grazie in anticipo.

+0

è possibile aggiungere le librerie di applicazioni/librerie in codice identificativo –

+0

L'ho fatto. Ma cosa succede se la libreria contiene ** require_once **? Nel file facebook.php, hai un ** require_once ("base_facebook.php") ** – htaidirt

+0

Non c'è nulla che ti impedisca di includere direttamente le classi include (APPPATH.'libraries/Facebook/base_facebook.php '); –

risposta

9
  1. creare una cartella in cui inserire un file facebook-sdk al suo interno: /application/libraries/facebook/
  2. creare un Facebook_lib.php nelle librerie radice con il contenuto:

    <?php if (! defined('BASEPATH')) exit('No direct script access allowed');
    require_once 'facebook/facebook.php';
    class Facebook_lib extends Facebook{}

  3. controller:

    $this->load->library('facebook_lib',$config);$this->facebook_lib->clearAllPersistentData();

+1

Ho scritto una risposta simile, leggermente più dettagliata qui http://stackoverflow.com/questions/11625458/integrate-phpgrid-with-codeigniter/11645624#comment15735065_11645624 – jimbo2087

1

per Facebook SDK è sufficiente copiare i file nella cartella ../application/libraries/ e in un controllore si può chiamare in entrambi i modi:

$config = array('appId' => APP_ID, 'secret' => APP_SECRET); 
$this->load->library('facebook', $config); 

o

creare un file chiamato facebook.php nella cartella ./application/config e creare un array in esso

$config = array('appId' => APP_ID, 'secret' => APP_SECRET); 

e controller è sufficiente contattare la biblioteca come $this->load->library('facebook');

+0

Quindi, in generale, devo solo copiare/incollare il file di classe PHP nella cartella della libreria e chiamarlo in un controller come la mia libreria (significa una libreria che ho creato per il codeigniter). C'è qualche regolazione da fare all'interno della libreria importata (oltre a: if (! Defined (BASEPATH ...)? – htaidirt

+0

no non è necessario effettuare alcuna regolazione in nessuno dei due file ... basta caricare la libreria e chiamare le funzioni richieste ... –

1

Non c'è nulla che ti impedisca di includere direttamente le classi include (APPPATH.'libraries/Facebook/base_facebook.php ');

O

Posizionamento versioni con lo stesso nome nella cartella application/librerie.

classi dovrebbero avere questo prototipo di base (Nota: Stiamo usando il nome SomeClass puro titolo di esempio):

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Someclass { 

    public function some_function() 
    { 
    } 
} 

/* End of file Someclass.php */ 

da qualsiasi delle vostre funzioni del controller è possibile inizializzare la classe utilizzando lo standard:

$this->load->library('someclass'); 

di più Leggi http://codeigniter.com/user_guide/general/creating_libraries.html

+0

Quindi, devo leggere la classe importata e sostituire tutti gli include ("file.php") includendo (APPPATH. "Libraries/file.php")? – htaidirt

+0

@ Hassinus Sì, puoi, o puoi scrivere il proprio libraray, sarebbe meglio –

Problemi correlati