在CodeIgniter中加载自定义类?

Tar*_*rka 11 php codeigniter

刚开始使用CodeIgniter,我想导入一些旧的类用于新项目.但是,我不想过多地修改它们以适应CI的操作方式,我希望能够继续使用NetBeans的自动完成功能,这对CI来说效果不佳.

那么,在不使用库/模型加载机制的情况下,将自定义类和类文件加载到CodeIgniter的最佳方法是什么?

如果这是我应该能够快速找到的东西,我道歉,但我似乎无法找到我追求的东西.我看到的一切只是告诉我如何通过CI.

Raz*_*med 20

要以codeigniter方式执行此操作,请将自定义类放在codeigniter的libraries文件夹中.然后通过在控制器中添加该类作为库来使用它,如下所示:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Someclass {

   public function some_function()
   {
   }
}

/* End of file Someclass.php */
Run Code Online (Sandbox Code Playgroud)

在控制器中使用:

$this->load->library('someclass');
Run Code Online (Sandbox Code Playgroud)

checkout完整文章,网址http://www.codeigniter.com/user_guide/general/creating_libraries.html


Phi*_*eon 15

库很容易编写,但它们有一些限制.构造函数只能将数组作为参数,并假设每个文件只存在一个类.

你可以包含你自己的任何类来使用它们,因为这只是PHP ofc :)

include APPPATH . 'classes/foo.php';
$foo = new Foo;
Run Code Online (Sandbox Code Playgroud)

或者在config.php中设置一个__autoload()函数(最好的位置),你可以访问你的类,而不必包含它们.


Rob*_*rto 10

我要说你至少写一个包装类,它可以require使类和实例化对象并使它们可访问.然后你可以自动加载这样的库并根据需要使用它.

我建议您至少尝试让它们适合CI方式,因为向前推进这将使您的生活更加轻松.我一直处于相同的位置,并在此过程中学到了这一点.