繁体   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