在Zope 3中实现新的内容对象对Zope3">开发人员来讲其重要性不言而喻。为了让讲解更加具有可操作性,本章将使用一个留言簿范例来帮助大家理解。下面一章,我们将列出在Zope3中实现和注册一个新内容组件所需的主要步骤。
本章将是我们开发一个 MessageBoard 类型的一个起点。 在任务开始前,我们认为您已经安装好了 Zope 3 , 还有您也已经具备了 Python 的编程技能,当然更重要的一点就在于您非常乐意花一些时间学习 Zope 框架。
步骤 I:准备工作
在开始之前,你应该已经安装了 Zope 3,创建了 principal.zcml 文件并可以成功启动 Zope。你都做到了吗? 好的,那么,让我们开始。
相对于Zope2, Zope3没有要求您必须在指定目录中添加程序包,您可以选择您认为方便的地方来添加它。最好的地方就是把它放到ZOPE3/src (ZOPE3 是您的Zope3安装目录)目录中, 因为这样的话,我们就不用担心和PYTHONPATH相混淆了。另外,为了让书中所演示的内容显得更加整洁清晰,我们把所有的程序代码都放进一个名为book的程序包。在Unix中,用下面的命令创建book 目录:
1 mkdir ZOPE3/src/book
把一个空的 <u>init</u>.py 文件放到新建的目录里,在Unix中,您可以使用如下命令来完成该工作:
1 echo "# Make it a Python package" >> ZOPE3/src/book/<u>init</u>.py
不过,您当然也能使用文本编辑器来创建该文件,但是您需要确信该文件中的Python 程序代码是正确的。通常,文件中应该至少包含一些空格,因为空文件常常搞乱一些存档文件。现在我们又以类似方式在book里面创建另一个messageboard的程序包(不要忘记创建<u>init</u>.py 文件)。从现在开始,我们下面需要进行的所有工作都只需在messageboard包里进行,这个包位于ZOPE3/src/book/messageboard。
注意:您可以通过如下地址下载我们所做的每一步的源码: http://svn.zope.org/book/trunk/messageboard 其中包含许可,为了减少输入,我们在整个源程序中都省略了与许可有关的信息,但这并不代表这些源程序没有版权,实际上,版权仍然存在于这些源文件之中。
步骤 II:初步设计
就像前面我们所提到的,我们的初衷就是需要开发一个基于Web的留言簿应用程序,程序的界面并不要求十分漂亮,但功能则要求相当完备。具体设计是,根对象 MessageBoard 可以容纳来自不同用户的记录或消息(Message)对象。另外,由于我们想让用户对不同的消息回复,因此我们就需要允许消息包含回复。
那就意味着11545.html">我们有两个基于容器的组件:MessageBoard只包含能被添加到任何文件夹的消息或那些希望能包含消息的容器。MessageBoard应该有一个对主题讨论的描述(description)。另一方面,Messages(消息)只被留言簿或其他消息包含。每一个消息都将有标题(title)和正文(body)。
设置应该包含我们制作这个可用对象所必需的东西。稍后我们还将联合许多其它与这些组件有关的元数据,并把他们更好的集成到zope3中,而且还将增加相关的辅助功能。