2017-07-10 78 views
0

如何訪問getid3類並在控制器中使用它?在codeigniter中加載外部庫

project 
/application 
/controller 
/libraries 
    /getID3 
     /getid3 
      getid3.php 
/model 
/views 
+0

檢查[this](https://stackoverflow.com/questions/20182724/how-to-load-class-library-in-codeigniter) – Regolith

+0

getid3.php的代碼是用codeigniter語法編寫的嗎?或者它完全不同? – Bhavin

+0

@Bhavin它是一個不同的代碼。一個外部庫。 –

回答

1

使用CodeIgniter的內置常量,APPPATH。 (因爲代碼不是用codeigniter的語法編寫的)

`require_once(APPPATH.'libraries/getID3/getid3/getid3.php');` 

如果這個庫是codeigniter的內置庫,那麼你應該使用。

$this->load->library('libary name'); 
+0

此答案適用! –

0

CI Documentation

,你可以通過做

$this->load->library('getID3/getid3/Getid3'); 

負載庫文件解釋的。如果你已經位於子目錄中的文件一樣

您將使用加載它:

$this->load->library('flavors/chocolate');

+0

你的文件名應該像這樣'Getid3.php'。請參閱[文件命名](https://www.codeigniter.com/user_guide/general/styleguide.html#file-naming) – Regolith

0

你可能只是做了require_once主GetID3.php文件

require_once(APPPATH.'libraries/getID3/getid3/getid3.php');

但也有更好,更清潔的方式,來管理這個第三方的依賴。

而不是直接要求GetID3.php文件,我建議爲庫創建一個包裝類。創建一個包裝類讓您能夠擴展/覆蓋getid3庫,並通過允許您執行「codeigniter方法」來提供更清晰的實現。

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

class GetID3 { 

    function __construct ($options = array()) 
    { 
     require_once(APPPATH . 'third_party/getID3/getid3/getid3.php'); 
    } 

    public function __get($var) { return get_instance()->$var; } 
} 

這樣做,這樣提供了一個簡潔的界面與工作,並允許更多的可擴展的方式來管理第三方的依賴。另外,不是目錄結構。在這裏,我們將第三方依賴保存到third_party目錄,同時將封裝類保存到庫/ GetID3.php。

一旦你這種方式實現它,你可以加載庫,你通常會:

$this->load->library('GetID3'); 
0

關於你的文件結構Codeigniter有這方面的解決方案:

project 
/application 
/controller 
/libraries 
    /getID3 
     /getid3 
      getid3.php 
/model 
/views 

我們請致電Getid3.php庫,您需要在控制器中添加以下代碼。

$this->load->library ('getID3/getid3/getid3', '', 'getid3(you can add any name you want'); 

我們使用此:

$this->getid3->your_function($data); 

請注意Getid3.php必須以大寫字母開頭。