簡體   English   中英

在CodeIgniter中加載自定義類?

[英]Loading custom classes in CodeIgniter?

剛開始使用CodeIgniter,我想導入一些舊的類用於新項目。 但是,我不想過多地修改它們以適應CI的操作方式,我希望能夠繼續使用NetBeans的自動完成功能,這對CI來說效果不佳。

那么,在不使用庫/模型加載機制的情況下,將自定義類和類文件加載到CodeIgniter的最佳方法是什么?

如果這是我應該能夠快速找到的東西,我道歉,但我似乎無法找到我追求的東西。 我看到的一切只是告訴我如何通過CI。

要以codeigniter方式執行此操作,請將自定義類放在codeigniter的libraries文件夾中。 然后通過在控制器中添加該類作為庫來使用它,如下所示:

<?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');

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

庫很容易編寫,但它們有一些限制。 構造函數只能將數組作為參數,並假設每個文件只存在一個類。

你可以包含你自己的任何類來使用它們,因為這只是PHP ofc :)

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

或者在config.php中設置一個__autoload()函數(最好的位置),你可以訪問你的類,而不必包含它們。

我要說你至少寫一個包裝類,它可以require類並實例化對象並使它們可訪問。 然后你可以自動加載這樣的庫並根據需要使用它。

我建議您至少嘗試讓它們適合CI方式,因為向前推進這將使您的生活更加輕松。 我一直處於相同的位置並且一路上學到了這一點。

如果你剛剛開始使用CodeIgniter,也許你應該檢查Kohana(http://kohanaframework.org/)。 它在許多方面與CodeIgniter非常相似,但它以正常方式加載類(使用新的ClassName()),因此Netbeans的自動完成功能應該正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM