【问题标题】:When to create a custom module?何时创建自定义模块?
【发布时间】:2011-05-18 13:27:15
【问题描述】:

我试图完全了解创建模块时的情况,而不是创建各种模型和助手(可能会或可能不会扩展其他类)?

谢谢!

【问题讨论】:

    标签: php oop kohana kohana-3


    【解决方案1】:

    基本上,您将为与特定应用程序无关的任何内容创建一个模块。这个想法是您创建可在多个项目中使用的可重用模块。

    有些人甚至将整个应用程序拆分为多个模块。

    zombor 的 vendo 应用程序就是一个很好的例子,它基本上是一个可以从中学到很多东西的示例应用程序。

    【讨论】:

    • 对!所以他甚至没有应用程序/类文件夹?因此,通过为所有内容创建模块并抽象这些模块,您可以使您的代码更加可重用。我是否正确地认为如果我有两个模块“用户”(它创建一个基本用户对象)和“组”(本质上只是一个将多个对象组合在一起的抽象类),那么我会在“用户”模块 /modules/user/classes/user/list.php 扩展了组模块并创建用户列表?
    • 这是最佳实践吗?我想我得到的是,如果我有两个模块 A 和 B,并且我想使用 B,最好是创建一个新模块还是简单地在 A 中添加一个类来做到这一点。这当然意味着 A 将依赖于 B 并且因此没有被抽象到最大程度?那么没有三个模块是最好的“用户”、“组”和“用户组”吗?
    • 这个问题没有简单的答案。这完全取决于情况。但是您不必为每个班级制作一个模块。尝试将类似的事物归为一类。您可以做出的一个区别是耦合的数量。如果事情高度相关,您可以决定将它们放在同一个模块中。当它们不那么相关时,您可以将它们放在不同的模块中。
    【解决方案2】:

    @Ikke 点有效。另一种方式是模块具有特定用途,例如包含类、全局函数、用于共享目标的全局类型,可以在单个应用程序中使用,也可以在多个应用程序中使用。

    多个应用程序的模块通常称为“librar-y (ies)”

    【讨论】:

    • 但是在 kohana 中只有一个 modules 文件夹用于对类进行分组并将它们插入。kohana 中的库不是 /application/classes/ 文件夹中的单个类而不是静态的吗?
    • @Colin,我不使用 kohana,但是,从概念上讲,如果你把一个类放到一个模块中,没有任何静态的东西,并且有理由把它放在那里,分开从其他人那里,它是一个图书馆;-)
    猜你喜欢
    • 1970-01-01
    • 2016-10-12
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多