I really like this idea. I spend most of my time developing applications
with Plone, and am just starting to use zope 3. Most of what I spend my
time on is site customisation and one off development. But I've never
really found a nice way to layout my applications, Product (or more
standard python modules now in zope 3) development doesn't really seem a
good fit. With this system I can see my site as:
index.zpt (customised homepage, no longer living in the zodb yay!)
So I get to move my site customisation to the filesystem in a more
natural way than a python module allows. Yes, it looks a bit like an
apache site, but hell, I know apache, and I'm building a website :-)
As an aside, I've just been doing a little mod_python development and in
some ways it seems very natural using it for small applications, but I
miss all the zope goodies.
I think this could really open up zope 3 to more developers, so a big
cheer from me.
Shane Hathaway wrote:
An idea just occurred to me. I think others have probably had similar
ideas, but didn't express it in the right place or time.
Part 1: Let's put an Apache-like web root (similar to
/var/www/localhost/htdocs/) in Zope instance homes. It might be called
"browser" or "www". Zope will serve pages out of that web root rather
than an object database.
Part 1 rationale: When people create a Zope instance home, they create
some config files and an object database. The root of the site is
served out of the object database. To change the default page, newbies
are directed to create a default page in the object database. The user
didn't ask for an object database. The use of an object database should
be a choice, not a requirement. Now the user has to learn some extra
tools (fssync, etc.) in order to put the files under version control. I
think the user experience for both newbies and experts would be much
better if the root of the site were served from a filesystem directory.
Part 2: Let's add some ZCML directives that define how to interpret
filenames in the web root by their extension. Let's also interpret
special per-directory files that map URI names to filenames, similar to
Apache .htaccess files.
Part 3: One kind of file we can put in the web root serves as a gateway
into an object database. We might use the extension ".zodb" for this
purpose. The .zodb file would specify what kind of storage to open,
where to find it, and what object to load from it. In a sense, the web
root would mount the object database. Some configuration of the web
root would mount an object database right at the root, enabling Zope 3
to act just like it does today.
Any thoughts or gut reactions?
Zope3-dev mailing list