Доброго утра, ребята. Мой вопрос немного общий: как я могу адаптировать любую библиотеку PHP (например, facebook sdk) для использования в CodeIgniter?

Обычно, когда вы загружаете библиотеку PHP и просматриваете предоставленные примеры, вы загружаете библиотеку с помощью include или require_once . Каковы настройки (и способы) использования $ this-> load-> library ($ name, $ params) ?

И как мне после этого пользоваться библиотекой: заменив $ var = new Library ($ data) на ???

Если мой вопрос еще не ясен, сообщите мне.

(бонусный вопрос: как применить это к facebook-sdk?)

Заранее спасибо.

8
htaidirt 12 Мар 2012 в 14:07

3 ответа

Лучший ответ
  1. создайте папку для размещения в ней файлов facebook-sdk: / application / libraries / facebook /
  2. создайте Facebook_lib.php в корне библиотеки с содержимым:

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

  3. в контроллере:

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

9
Mikhail 12 Мар 2012 в 10:35

Для facebook sdk вам просто нужно скопировать файлы в папку ../application/libraries/ и в контроллере вы можете вызвать его любым способом:

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

Или

Создайте файл с именем facebook.php в папке ./application/config и создайте в нем массив

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

А в контроллере просто вызовите свою библиотеку, например $this->load->library('facebook');

1
Code Prank 12 Мар 2012 в 10:23

Ничто не мешает вам напрямую включить классы include (APPPATH.'libraries / Facebook / base_facebook.php ');

ИЛИ

Размещение версий с одинаковыми именами в папке вашего приложения / библиотек.

Классы должны иметь этот базовый прототип (Примечание: мы используем имя Someclass исключительно в качестве примера):

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

class Someclass {

    public function some_function()
    {
    }
}

/* End of file Someclass.php */

Изнутри любой из ваших функций контроллера вы можете инициализировать свой класс, используя стандарт:

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

Подробнее читайте http://codeigniter.com/user_guide/general/creating_libraries.html

1
Rinto George 12 Мар 2012 в 10:34