【发布时间】:2012-10-14 23:33:25
【问题描述】:
起初这听起来可能有点“不合时宜”。基本上,我正在 CodeIgniter 中构建一个小型后端,我希望将来能够轻松地将其推广到多个项目中。目前它是控制器、助手、扩展核心类、视图和资产文件夹的集合。如果我想让重新分发变得容易,那么我想尝试减少单个文件的数量。
视图、控制器和模型显然最好作为单独的文件保留。
但是我也用我自己的扩展了很多 CI 的核心类:CI_Controller、CI_Form_validation 和 CI_Input。可能还有更多后续内容。
有没有办法可以将这 3 个合并到一个文件中?
显然,在 application/core 目录中没有它们会破坏 MY_ 前缀自动加载。如果我也可以将我的自定义帮助函数存储在同一个文件中,那也很棒。这使我能够以传统的 MY_ 前缀格式在 application/core 中保留任何特定于应用程序的核心类,同时能够轻松地向我的核心类推出更新。
我目前在 config.php 中使用 Phil 改进的本机自动加载器(请参阅此处...http://ellislab.com/codeigniter/forums/viewthread/218099/#1006583)来加载我的扩展核心类,而不使用 MY_ 前缀,这样我就可以给它们更多可识别和合乎逻辑的名称,以便于重新分配.
这向我表明 config.php 在启动时处理得足够早,以至于我可以做一个厚脸皮的 require('AdminCoreClasses.php')。
因为这基本上是本机自动加载器所做的,但会查看当前类名以指定要加载的文件。我只是硬编码一个文件,其中包含我所有的扩展核心类。
有没有更好的方法来做到这一点?
【问题讨论】:
-
把它作为火花释放? getsparks.org
-
我根本不用担心文件的数量。我看不出它如何使分发更容易 - 但我想听听。如果您担心
MY_类重载,那么如果您想减少文件数量,为什么不直接编辑核心系统文件呢?还是 CI 本身不包含在分发中? -
您会打破 CI 文件系统的想法,因此最好将其作为 zip 存档分发,其中包含子目录和上传位置说明
-
目前我已经在完成任何更改后压缩了我的“模块”。我不包括 CI 系统。因此,从 zip 中提取确实会将所有内容转储到正确的子目录中。我也想保持核心文件不变,以便于升级。实际上,我修改后的类有不同的名称,所以我不使用 MY_ 前缀。这允许我将 MY_ 前缀用于与我的后端模块无关的其他修改类,并且基于特定应用程序。
-
正如你所说,我现在想我会忘记这一点,继续我目前正在做的事情。我不想过多地混淆 CI 的结构。
标签: php codeigniter