2012-03-12 42 views
8

Bueno mor (eve) ning chicos. Mi pregunta es un poco general: ¿Cómo puedo adaptar cualquier biblioteca PHP (como facebook sdk por ejemplo) para usar en CodeIgniter?¿Cómo adaptar una biblioteca PHP a Codeigniter?

En general, cuando se descarga una biblioteca PHP y mirar a los ejemplos proporcionados, se carga la biblioteca utilizando incluyen o require_once. ¿Cuáles son los ajustes (y las formas) de usar $ this-> load-> library ($ name, $ params)?

Y cómo puedo usar la biblioteca después de eso: reemplazando $ var = new Library ($ data) por ???

Si mi pregunta aún no está clara, por favor avísenme.

(pregunta extra:? Cómo se aplica esto a facebook-SDK)

Gracias de antemano.

+0

puede agregar bibliotecas de la aplicación/bibliotecas Codeignter –

+0

Lo hice. Pero, ¿qué ocurre si la biblioteca contiene ** require_once **? En el archivo facebook.php, tiene ** require_once ("base_facebook.php") ** – htaidirt

+0

No hay nada que le impida incluir directamente clases (APPPATH.'libraries/Facebook/base_facebook.php '); –

Respuesta

9
  1. crear una carpeta para colocar una archivos de facebook-sdk en él: /application/libraries/facebook/
  2. crear un Facebook_lib.php en las bibliotecas de la raíz con el contenido:

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

  3. en el controlador:

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

+1

Escribí una respuesta similar, un poco más detallada aquí http://stackoverflow.com/questions/11625458/integrate-phpgrid-with-codeigniter/11645624#comment15735065_11645624 – jimbo2087

1

para Facebook SDK sólo tiene que copiar los archivos en la carpeta ../application/libraries/ y en un controlador se le puede llamar, ya sea en formas:

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

o

crear un archivo facebook.php nombre en la carpeta ./application/config y crear una matriz en la que

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

y en el controlador, simplemente llame a su biblioteca como $this->load->library('facebook');

+0

Así que, en general, solo tengo que copiar/pegar el archivo de la clase PHP en la carpeta de la biblioteca y llamarlo en un controlador como mi propia biblioteca (es decir, una biblioteca que creé para codeigniter). ¿Hay algún ajuste para hacer dentro de la biblioteca importada (además de: if (! Defined (BASEPATH ...)? – htaidirt

+0

no, no necesita hacer ningún ajuste en ninguno de los archivos ... simplemente cargue la biblioteca y llame a las funciones requeridas ... –

1

No hay nada que te impida incluir directamente las clases (APPPATH.'libraries/Facebook/base_facebook.php ');

O

La colocación de las versiones con nombres idénticos en su carpeta application/libraries.

Las clases deben tener este prototipo básico (Nota: Estamos utilizando el nombre Someclass puramente como un ejemplo):

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

class Someclass { 

    public function some_function() 
    { 
    } 
} 

/* End of file Someclass.php */ 

Desde el interior de cualquiera de sus funciones de controlador se puede inicializar la clase utilizando el estándar:

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

más leer http://codeigniter.com/user_guide/general/creating_libraries.html

+0

Entonces, ¿tengo que leer la clase importada y reemplazar todo include ("file.php") por include (APPPATH. "Libraries/file.php")? – htaidirt

+0

@ Hassinus Sí, puedes, o puedes escriba su propio libraray, sería mejor –

Cuestiones relacionadas