簡體   English   中英

CodeIgniter:實現外部對象(不是模型,視圖或控制器的對象)的最佳方法?

[英]CodeIgniter: Best way to implement External Objects (Objects that aren't models, views, or controllers)?

我想在CodeIgniter項目中添加一些不是模型,視圖或控制器的類。 它們很可能是內置的模型/控制器,並以各種方式使用。 我應該在哪里存儲這些類,以及在CodeIgniter中實現它們的最佳方法是什么? (或者更一般地說,任何基於MVC的框架?)。

編輯:通過一些codeIgniter文檔,看起來將對象添加到幫助程序是可行的方法,這是正確的嗎?

CI與許多MVC框架不同,因為它不會使集成外部庫變得具有挑戰性。 通常,有幾種方法:

  1. 只需包含()/ require()庫並正常使用它。 除非存在命名沖突,否則大部分時間都可以正常工作。 CI大部分都不在路上,所以這並不常見。 在這種情況下,您可以將庫放在任何您想要的位置。 通常我會嘗試將它們保存在文檔根目錄之外的共享“libs”目錄中,因為我不認為它們只會被CI使用。

  2. 將庫放在應用程序/庫中,並使用CI-> load()方法加載它們。 這對命名約定提出了一些限制,因此您可能需要按摩現有庫或編寫某種包裝器構造函數。 關於創建庫的CI文檔非常清楚。

就個人而言,我更喜歡第一種方法。 這是使用CI的好處之一。

就個人而言,如果它不可能是一個庫,我會將它作為objects_helper.php放在helpers文件夾中,或者在特殊情況下放在與調用它的Library對象相同的文件中。

您還可以查看對象工廠庫,以便可以使用以下內容:

$this->factory->createUserObject( $name, $rank, $serial );

最后,您可以查看鈎子框架,但聽起來並不像您真的想要使用它。


如果你認為在任何其他情況下(從代碼/哲學角度來看)沒有意義,我只會使用require / include。 盡可能框架工作通常是個好主意。

我建議把它變成一個庫,只需使用$ this-> load-> library(); 要閱讀更多信息,請訪問: http//codeigniter.com/user_guide/general/creating_libraries.html

庫和助手之間存在差異。 如果外部庫不是面向對象的,那么你會希望它作為幫助器,如果是,那么你應該只能使它成為一個沒有問題的庫。

暫無
暫無

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

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