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