Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将第三方类与Codeigniter一起使用_Php_Codeigniter - Fatal编程技术网

Php 如何将第三方类与Codeigniter一起使用

Php 如何将第三方类与Codeigniter一起使用,php,codeigniter,Php,Codeigniter,所以我一定是在放屁,需要帮忙。我正试图在我的Codeigniter项目中使用它来计算我可以在一些盒子中放入多少项。我已将BoxPacker安装到“应用程序/第三方/BoxPacker”文件夹中。但是现在我该如何使用它呢 出于某种原因,我的大脑告诉我,我必须建立自己的库来与第三方编程接口,但我又有一个大脑屁,不知道如何实现它。这是一个漫长的一周,所以我非常疲惫,正在寻找一只手 编辑: 因此,我创建了一个名为BoxPacker.php的库,代码如下:` class BoxPacker { f

所以我一定是在放屁,需要帮忙。我正试图在我的Codeigniter项目中使用它来计算我可以在一些盒子中放入多少项。我已将BoxPacker安装到“应用程序/第三方/BoxPacker”文件夹中。但是现在我该如何使用它呢

出于某种原因,我的大脑告诉我,我必须建立自己的库来与第三方编程接口,但我又有一个大脑屁,不知道如何实现它。这是一个漫长的一周,所以我非常疲惫,正在寻找一只手

编辑: 因此,我创建了一个名为BoxPacker.php的库,代码如下:`
class BoxPacker
{
    function __construct()
    {
        require_once APPPATH."third_party/boxpacker/vendor/autoload.php";
    }
}
然后在控制器中,我调用:

$this->load->library('BoxPacker');
$packer=新的BoxPacker()

但是,当我尝试使用下面第三部分代码中的函数时,会出现以下错误
异常:调用未定义的方法BoxPacker::addBox()


$packer->addBox(新的测试盒('lepetite-box',300,300,10,10,296296,8,1000))

除了在
应用程序/第三方
目录中安装第三方库外,还必须在
应用程序/库
中创建一个新库,该库需要第三方代码,并按如下方式扩展:

Application/libraries/Yourlib.php:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    // include the 3rd party class
    require_once APPPATH."/third_party/class_name/filename.php";

    // Extend the class so you inherit all functions, etc.
    class NewClass extends ThirdPartyClass {
        public function __construct() {
            parent::__construct();
        }
        // library functions
        public function something(){
            ...code...
       }

完成此操作后,您可以
$this->yourlib
与正常情况一样

是否生成自动加载文件的可能副本?@Alex是的,当它与composer一起安装时,它创建了自动加载文件,我的库也指向了该文件。老实说,我从未尝试在CI中以这种方式加载带名称空间的库。虽然它应该可以工作,但你可以放弃autoload.php并在这里尝试我的答案:@Alex我之前确实尝试过,但是如果你从原始帖子中的BoxPacker链接下载这些东西并尝试,最终会出现大量错误。有些代码位于“dvdoug”文件夹中,而有些代码位于“psr”文件夹中,如果您在其中移动内容,就会变得很麻烦。由于它是与Composer一起安装的,因此我将所需路径设置为生成的自动加载文件。但是如果我尝试扩展这个类,我会得到一个错误,说找不到这个类。
$this->load->library('yourlib');