如何访问 getid3 类并在我的控制器中使用它?
project
/application
/controller
/libraries
/getID3
/getid3
getid3.php
/model
/views
如何访问 getid3 类并在我的控制器中使用它?
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');
关于您的文件结构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
必须以大写字母开头。
来自CI 文档
您可以通过执行加载库
$this->load->library('getID3/getid3/Getid3');
如文档中所述,如果您的文件位于子目录中,例如
libraries/flavors/Chocolate.php
您将使用以下方法加载它:
$this->load->library('flavors/chocolate');
您可以只在 GetID3.php 主文件上执行 require_once
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 目录,同时将包装类保存到libraries/GetID3.php。
一旦你以这种方式实现了它,你就可以像往常一样加载库:
$this->load->library('GetID3');