Php CodeIgniter:实现外部对象(不是模型、视图或控制器的对象)的最佳方法?
我想向CodeIgniter项目添加一些不是模型、视图或控制器的类。它们很可能是内置的模型/控制器,并以各种方式使用。我应该在哪里存储这些类,在CodeIgniter中实现它们的最佳方法是什么?(或者更一般地说,任何基于MVC的框架?)Php CodeIgniter:实现外部对象(不是模型、视图或控制器的对象)的最佳方法?,php,codeigniter,libraries,Php,Codeigniter,Libraries,我想向CodeIgniter项目添加一些不是模型、视图或控制器的类。它们很可能是内置的模型/控制器,并以各种方式使用。我应该在哪里存储这些类,在CodeIgniter中实现它们的最佳方法是什么?(或者更一般地说,任何基于MVC的框架?) 编辑:翻阅一些codeIgniter文档,将对象添加到助手似乎是一种方法,对吗 CI不同于许多MVC框架,因为它不会使集成外部库变得困难。一般来说,有两种方法: 只需包含()/require()库并正常使用即可。这在大多数情况下都很好,除非有命名冲突。CI基本上
编辑:翻阅一些codeIgniter文档,将对象添加到助手似乎是一种方法,对吗 CI不同于许多MVC框架,因为它不会使集成外部库变得困难。一般来说,有两种方法:
就我个人而言,我更喜欢第一种方法。这是使用CI的好处之一。就个人而言,如果它不可能是一个库,我会将其作为objects\u helper.php放入helpers文件夹,或者在特殊情况下,将其放入调用它的库对象的同一个文件中 您还可以查看对象工厂库,以便使用以下内容:
$this->factory->createUserObject( $name, $rank, $serial );
最后,您可以研究hooks框架,但听起来您并不是真的想使用它。
如果您认为require/include(从代码/哲学的角度)在任何其他情况下都没有意义,我只会使用require/include。只要有可能,在一个框架内工作通常是一个好主意。我建议将其作为一个库,只使用$this->load->library();欲了解更多信息,请参阅:
库和助手之间存在差异。如果外部库不是面向对象的,那么您会希望它作为一个助手,如果是,那么您应该能够使它成为一个没有问题的库。从来没有说过它不能成为一个库,但您确实提出了一些好的观点/备选方案。工厂库的想法似乎是可行的。不要将对象放在助手中!!!助手是过程性的,库是对象。