【问题标题】:Loading custom classes in CodeIgniter?在 CodeIgniter 中加载自定义类?
【发布时间】:2010-12-11 04:43:01
【问题描述】:

刚开始使用 CodeIgniter,我想导入一些我的旧类以用于新项目。但是,我不想过多地修改它们以适应 CI 的做事方式,并且我希望能够继续使用 NetBeans 的自动完成功能,这与 CI 不太兼容。

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

如果这是我应该能够快速找到的东西,我深表歉意,但我似乎找不到我想要的东西。我所看到的一切都只是告诉我如何通过 CI。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    我会说你至少编写了一个包装类,它可以require 类并实例化对象并使其可访问。然后您可能会自动加载此类库并根据需要使用它。

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

    【讨论】:

    • 因为它只是 3 个用于抽象 DB 和 Memcache 访问的类,所以我采用了我最终采用的方法。这不是真正的技术问题,更多的是设计问题。
    【解决方案2】:

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

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
    class Someclass {
    
       public function some_function()
       {
       }
    }
    
    /* End of file Someclass.php */
    

    在控制器中使用:

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

    http://www.codeigniter.com/user_guide/general/creating_libraries.html查看完整文章

    【讨论】:

      【解决方案3】:

      如果您刚刚开始使用 CodeIgniter,也许您应该查看 Kohana (http://kohanaframework.org/)。它在许多方面与 CodeIgniter 非常相似,但它以正常方式加载类(使用 new ClassName()),因此 Netbeans 的自动完成功能应该可以正常工作。

      【讨论】:

      • 只有 2.x 与 CI 有任何相似之处,3.x 分支完全不同。他们只真正分享他们使用 PHP 和 MVC 的事实......
      【解决方案4】:

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

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

      include APPPATH . 'classes/foo.php';
      $foo = new Foo;
      

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

      【讨论】:

      • 在配置中包含你的文件是一个错误的调用
      【解决方案5】:
      require_once(PHYSICAL_BASE_URL . 'system/application/controllers/abc.php');
      $report= new abc();
      

      接下来使用 abc contoller 中的函数详细信息:

      $mark=$report->detail($user);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-01
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-19
        相关资源
        最近更新 更多