【发布时间】:2011-02-10 03:09:21
【问题描述】:
我用谷歌搜索,得知一个库由多个相关类组成。但是在 Codeigniter 中,我发现每个库中几乎只有一个类。抱歉,我对此知识有限,但如果您能对此有所启发,我将不胜感激。非常感谢!
【问题讨论】:
-
i 库,可能与类无关,它可能只是过程函数的集合。一个类有一个定义明确的定义,一个库,至少在 php 中没有。
标签: php codeigniter
我用谷歌搜索,得知一个库由多个相关类组成。但是在 Codeigniter 中,我发现每个库中几乎只有一个类。抱歉,我对此知识有限,但如果您能对此有所启发,我将不胜感激。非常感谢!
【问题讨论】:
标签: php codeigniter
区别在于语义。
类是特定功能的实现(通常完全封装功能。
库是添加功能的功能单元(或仅一个)的集合。请注意,我试图远离该定义中的 class 一词。库可以是程序库、功能库或 OOP。这并没有减损它是一个图书馆的事实。在处理 OOP 时,类只是帮助抽象。
Framework 是一个库,可根据您编写代码的方式选择架构。
因此,每个框架都是一个库。并非每个库都是框架。 CodeIgniter 本身可以用作框架或库。不同之处在于,如果您让库指导您的架构,那么您使用的是框架。如果你不使用架构位,它就是一个库。
这绝对是一种迂腐的区别,但意义重大。总体而言,如果您正在做一个正式的架构并理解为什么所有东西都是分层的,特别是针对您的应用程序,那么您将它用作一个库。相反,如果您以这种方式构建它,因为 CI 就是这样做的,那就是使用框架。两者都有显着的好处,但值得了解其中的区别。
【讨论】:
在一般编程术语中,并非每个库都必须由多个类组成。事实上,并不是所有的库都必须由类组成——它实际上取决于实现(有时是语言)。正如Wikipedia 开头(斜体是我的):
在计算机科学中,库是用于开发软件的资源集合。 这些可能包括子例程、类、值或类型规范。
CodeIgniter 有自己的“库”定义,在这种情况下,它只是简单地将每个第三方应用程序类调用为自己的库。尽管如此,您可以在同一个库文件中包含其他类,只要您至少有一个与库文件同名的类。
【讨论】:
当我们使用术语“库”时,我们通常指的是位于库目录中并在本用户指南的类参考中描述的类。但是,在这种情况下,我们将改为描述如何在 application/libraries 目录中创建自己的库,以保持本地资源和全局框架资源之间的分离。
我不认为“库”特定于固定数量的类或文件。这句话是指让你困惑的具体用法吗?
【讨论】: