【问题标题】:CodeIgniter combine several extended classes and helpers into single file for easy distribution?CodeIgniter 将几个扩展类和助手组合到一个文件中以便于分发?
【发布时间】: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


【解决方案1】:

目前,一旦我完成了任何更改,我就已经将我的“模块”压缩了。我不包括 CI 系统。
因此,从 zip 中提取确实会将所有内容转储到正确的子目录中。
我也想保持核心文件不变,以便于升级。实际上,我修改后的类有不同的名称,所以我不使用 MY_ 前缀。这允许我将 MY_ 前缀用于与我的后端模块无关的其他修改类,并且基于特定应用程序。

我现在想,我会忘记这一点,继续我目前正在做的事情。我不想搞乱 CI 的结构方式,因为我的主要目标是让框架升级变得容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多