如何訪問getid3類並在控制器中使用它?在codeigniter中加載外部庫
project
/application
/controller
/libraries
/getID3
/getid3
getid3.php
/model
/views
如何訪問getid3類並在控制器中使用它?在codeigniter中加載外部庫
project
/application
/controller
/libraries
/getID3
/getid3
getid3.php
/model
/views
使用CodeIgniter的內置常量,APPPATH
。 (因爲代碼不是用codeigniter的語法編寫的)
`require_once(APPPATH.'libraries/getID3/getid3/getid3.php');`
如果這個庫是codeigniter的內置庫,那麼你應該使用。
$this->load->library('libary name');
此答案適用! –
,你可以通過做
$this->load->library('getID3/getid3/Getid3');
負載庫文件解釋的。如果你已經位於子目錄中的文件一樣
您將使用加載它:
$this->load->library('flavors/chocolate');
你的文件名應該像這樣'Getid3.php'。請參閱[文件命名](https://www.codeigniter.com/user_guide/general/styleguide.html#file-naming) – Regolith
你可能只是做了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');
關於你的文件結構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
必須以大寫字母開頭。
檢查[this](https://stackoverflow.com/questions/20182724/how-to-load-class-library-in-codeigniter) – Regolith
getid3.php的代碼是用codeigniter語法編寫的嗎?或者它完全不同? – Bhavin
@Bhavin它是一個不同的代碼。一個外部庫。 –