4

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

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

4 回答 4

2

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

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

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

$this->load->library('libary name');
于 2017-07-10T10:37:22.047 回答
2

关于您的文件结构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必须以大写字母开头。

于 2017-07-10T16:19:31.320 回答
0

来自CI 文档

您可以通过执行加载库

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

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

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

于 2017-07-10T10:37:28.960 回答
0

您可以只在 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');
于 2017-07-10T14:18:23.133 回答