通过web应用程序开发,不需要深入的编程技巧(zope核心中以前的zclasses功能)。
dm.zopepatches.zclasses的Python项目详细描述
这个功能以前在Zope核心中是ZClasses。 它允许菜单驱动的web应用程序构造。 由于菜单支持,只需要有限的编程技能。
更准确地说:允许定义类的ZClasses功能 (在面向对象的意义上) 通过zope管理接口(ZMI),即所谓的ZClasses。 一个ZClass可以从基类和其他ZClasses继承(多个 继承),管理一组关联属性表中的数据,定义 通过任意 其他Zope对象 (例如模板、脚本),定义适合该类的权限 并将类相关权限映射到 实现类方法的对象。 然后可以实例化类,并在 Web应用程序,用于保存数据、提供基本服务、粘合 一切都在一起。 令人印象深刻
这在过去是一个有价值的卖点。事实上,回来 2000年,我使用ZClasses构建了一个大型多语言web 包含大约6个ZClasses并允许 对欧洲招标数据库进行查询并订阅 以电子邮件通知更改的查询结果。
不幸的是,一些有影响力的zope开发人员(尤其是 Zope 2发布管理器)不喜欢ZClasses 开始和他们战斗最后(Zope 2.12),他们删除了 Zope核心的功能——最初声称 很高的维护负担(尽管从2.8开始 ZClasses)但最终承认删除发生了 因为他们不想要ZClasses
是的,ZClasses有一些问题:
- ^{tt1}$ are Zope objects, stored and maintained in the ZODB (the Zope Object Database). There is no version control system documenting who changed what for what reason. Such documentation can be vital for large projects with a long lifetime.
- ^{tt1}$ provided a vast functionality but there have been no tests to verify all this functionality. As a consequence, ^{tt15}$ broke once partially and this was only detected by Zope users and not during the development by the tests.
- For Zope 2.8, ^{tt1}$ needed an overhaul and only Jim Fulton (the initial author of Zope and ^{tt1}$) was able to do this work. The developers feared that a future Zope version might need a similar effort with the resources missing.
- ^{tt1}$ do not play well with storage mounting.
提醒用户注意这些缺陷是正确的,但在我看来 通过删除 功能。幸运的是,zope是开源的,这在一定程度上限制了 开发者和发布经理的力量。 这个包使用所谓的monkey patching(运行时代码修改) 重新插入Zope的ZClasses功能 Zope开发人员已经抢走了
一些警告注释:猴子修补可能 很危险部分地,它将核心功能替换为 修改了一个。我已经尽力让这些替代品 对于Zope2.12来说没问题,但是未来的Zope版本可能需要其他版本 替换。破损可能不会发生在ZClasses本身 但在核心功能上。此外,zope开发者的敌意 towardZClasses可能足够大,它们可以删除更多部分 由ZClasses要求。原则上,这些部分也可以 被收回,成本会增加,最终可能会变得太大(比如 我放弃了这个项目)。因此,最好不要 依靠这套方案进行长期的新项目,但限制 它用于获得一些额外的时间来重新实现基于ZClasses的 项目或短生命原型。
ZClasses以前记录在 “http://www.plope.com/Books/2_7Edition/CustomZopeObjects.stx”。 Zope开发人员也没有忘记删除这些文档。 但是,我已经预料到了这一步,并保存了一份副本你发现 它在包的doc子目录中。它仍然呈现“扑通一声” 外观和链接将不起作用。屏幕截图丢失,但您 可以用你的Zope去拿。
激活
这个包在导入之前什么也不做进口时, 它会给猴子打补丁。
ZClasses需要一个特殊的类工厂 根ZODB为此,根ZODB配置 必须使用配置选项(在zope配置文件中):
class-factory dm.zopepatches.zclasses.ClassFactory
通常,进口(在第一段中提到) 在处理此选项时执行
限制
- This version does not yet reinstate the ^{tt1}$ help pages.
- This version does not yet reinstate the distibution tab of products. Likewise, distribution import is likely not to work.