在codeigniter中加载外部库

时间:2017-07-10 10:29:36

标签: php codeigniter libraries getid3

如何访问getid3类并在我的控制器中使用它?

var myMethods = {
  foo: function () {}, // < This comma
  getLastNRows: function (whereIsData, DB_info, table, NRows, callback) {
      ...
  },
};

4 个答案:

答案 0 :(得分:1)

使用CodeIgniter的内置常量APPPATH。 (因为代码不是用codeigniter的语法编写的)

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

如果这个库是codeigniter的内置库,那么你应该使用。

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

答案 1 :(得分:0)

来自CI Documentation

您可以通过

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

如文档中所述,如果您的文件位于类似的子目录中
libraries/flavors/Chocolate.php
您将使用以下方式加载它:

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

答案 2 :(得分:0)

你可以在主GetID3.php文件上执行require_once

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

但是有更好,更清洁的方法来管理这个第三方依赖。

我建议为库创建一个包装类,而不是直接要求GetID3.php文件。创建一个包装类使您能够扩展/覆盖getid3库并提供更清晰的实现,允许您以&#34; codeigniter方式执行操作&#34;。

<?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');

答案 3 :(得分: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必须以大写字母开头。