【问题标题】:Codeigniter librarys vs core classesCodeigniter 库与核心类
【发布时间】:2013-04-02 15:30:50
【问题描述】:

我需要创建一些几乎所有控制器都会使用的功能。

所以我需要创建一个自定义类。现在我做这个作为核心课程吗?还是作为图书馆?这些有何不同?

【问题讨论】:

    标签: codeigniter codeigniter-2


    【解决方案1】:

    当我想在项目范围内更改某个核心类的某些行为时,我会使用核心类覆盖技术。一个很好的例子是在 /core/MY_Model 中使用 Jamie Rumbelow's model class

    对于将在每个控制器中使用的功能,我构建了一个库来执行这些功能并自动加载它,然后根据需要从该库中调用函数。

    【讨论】:

    • +1!确切地!放置在核心文件夹中的类应该是覆盖 CodeIgniter 类的类。如果您正在编写具有自己功能的类 - 那就是一个库。
    • 他的功能将需要数据库交互。但它也会在会话中存储/检索数据。因此,同时拥有库和模型是否有意义?还是只是一个模型?
    • 是的,您也将拥有一个模型...该模型将处理数据库交互。您的库将调用模型中的方法来检索或存储数据库中的数据。它不是一个非此即彼的选择,而是一个由各个组件组成的综合系统,每个组件都各司其职。
    【解决方案2】:

    你想要一个库就是你正在开发一个类。对于简单的函数,创建一个助手。如果您正在开发与数据库交互的功能,请创建一个模型。

    在您的应用程序文件夹中添加您的自定义帮助程序和库。

    【讨论】:

    • 该功能将需要数据库交互。但它也会在会话中存储/检索数据。因此,同时拥有一个库和一个模型有意义吗?
    • 是的,您的库将调用模型中的方法进行数据检索。
    • 谢谢。杰科里。旁注:你喜欢 Jamie Rumbelow 的模特课吗?它会让你的开发更快吗?我也在考虑买她的书(efendibooks.com/books/codeigniter-handbook/vol-1)。有意见吗?
    • 杰米是她?我不知道!我真的很喜欢那门课……但看到它有局限性。一些纯粹主义者认为,构建代表数据库表的模型是一种反设计模式。我已经注意到(超过 12 年的 PHP 开发)这种“反模式”对于我反复被要求解决的问题类型非常有用。我不熟悉这本书……但从未读过 codeigniter 的书,它是用户指南,在线可用的教程和用它编写的开源应用程序对于作为 CI 用户进行开发非常有用,我还没有看过需要。
    猜你喜欢
    • 2023-03-12
    • 2017-04-06
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2019-08-30
    • 2017-12-10
    • 1970-01-01
    • 2014-03-06
    相关资源
    最近更新 更多