folder,DTML document,DTML method,script是四种Zope中最常见的对象,那么它们之间有什么联系呢?下面是我的一点点看法,请指教。
Zope是一个对象数据库,在Zope下进行开发时,你实现在处理一个个的对象,这样对象有着不同的类型。Zope对对象的管理是采用象 explore文件管理器的目录/文件的树型结构的管理方式。这样folder是基本的对象分类与存放的地方。但folder本身又是一个对象,你可以列出一个folder中的所有对象来。
DTML document是基本的内容表现对象,它具有唯一的id和属性。
DTML Method与DTML Document差不多,不同之处它没有自已的属性,而且在使用某此方法时使用的是所在folder对象。
script就是用python或perl编写的程序。
如果以一种对象的观点来看这些东西的话,可以这样理解
folder #对象
|-DTML Document
#folder的属性,子对象
|-folder #folder的子类
|-DTML Method #folder的方法
--script #folder的方法
在通过url访问对象时,根据url所描述的路径先找到最底层的对象,然后查找这个对象的方法与url是否一致,如果没有查找所在的 folder,有无DTML Method和script,如果还没有,则向上级目录进行查找。因此如果我们将folder做为一个大对象来理解的话,DTML Document,子folder为它的属性,其中子folder也可以看成是folder的子类。而DTML Method和script则为folder的方法。从根folder开始找到它所包含的子folder的过程叫做URL traversal(url遍历),从子类(子folder或对象)查找父类(上级folder)的方法或属性的过程叫做acquisition(获取)。