CodeIgniter - 一个包含许多类的最佳实践库

12

我正在为我们的CodeIgniter应用程序构建一个库,但它需要许多类(目前有12个)。

是否有一种最佳实践来将这些许多客户端打包成一个库。这样我只需进行一次调用即可加载它。例如:

$this->load->library('soaplibrary');

谢谢!


只需要将所有相关的类放入一个文件夹中的不同文件中,然后对于每个类使用"$this->CI->load->library('myfolder/myclass')"即可。 - markymark
3个回答

8
正如Summer所指出的,在CI 2.0中他们用Driver的概念比较优雅地处理了这种情况。
使用Driver时,您实际上会在“libraries”目录中创建一个子目录,其中包含您的“超级”类和另一个目录用于“子”类。更好的结构可视化表示见下图... enter image description here 以上内容摘自此处
一旦您构建好您的库,这里是文档,告诉您如何使用它。

不幸的是,我正在处理一个使用1.7版本的网站。但如果我们升级,我认为这是理想的解决方案。 - markymark

4
在 CI 2.0 中,有驱动程序来处理这种情况。祝你好运!

1
在 CodeIgniter 3.1.9 中,当您加载库文件时,该文件中的所有类都将被包含到代码中。
假设在 soaplibrary.php 文件中,您有:
class SoapLibrary {
   public function someMethod(...

class Test {
   public function anotherMethod(...

在你的控制器中,你可以这样做:

$this->load->library('soaplibrary');

//now on you can do
$this->soaplibrary->someMethod();

//but also
$test = new Test();
$test->anotherMethod();

CodeIgniter试图调用类SoapLibrary的构造函数,因此必须存在一个具有该名称的类。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接