Zope Replication in PHP

Posted 21 Jun 2002 at 02:55 UTC by mglazer Share This

I have been working on a PHP application framework
similar in scope, not in scale by any means, to Zope (http://zope.org). I call it a PHPortal (http://dev.4arrow.com).

It uses a similar UI to the management panels of Zope and a somewhat similar way of working with reusable http URI Objects as a easy way to build and maintian a large number of web sites and applications in a secure acl user group environement.

One of my goals in creating PHPortal was to not require any special root server access or additonal modules besides the standard PHP Apache setup so it can be used in most shared web hosting accounts.

Some features include:

  1. over 20 content-type transformations (html,xhtml,css,javascript,rss,opml,xml,text to speech,text,wml,xml- rpc,xsl,xls,word,rtf,pdf,source,png,swf,vxml,zip,gzip)
  2. unlimited websites under one object umbrella (literally one file is used for the gateway handler for all URI Requests)
  3. no manual file CHMODing with no need to leave files or directories writable
  4. Cut, copy, paste, import and export objects
  5. versioning, history, undos,
  6. built in XMLRPC server that 'listens,'
  7. URI based virtual file folder sytem
  8. ACL user group access
  9. advanced security options per object using local access roles
  10. built in logging, log archiving, sessions
  11. cross-domain cookies
  12. built in search
  13. large pool of resuable drop and run applications (not public quite yet)

URLs, posted 21 Jun 2002 at 11:29 UTC by Malx » (Journeyer)

Whouldn't you think this url is not nice-looking ?
I mean URL, not page, which is pointed with URL.

Whould it be better to make mapping like:

And some questions:

  • Is it GPL?
  • Could anonymous visitor see history of page changes?
  • How you do export/import of M$ word/xls ? Which library?

RE: URLs,, posted 21 Jun 2002 at 14:08 UTC by mglazer » (Journeyer)

The URLS could be made anyway you like. PHPortal is developers software so it meant to be completely manipulatable nothing is set in stone. All URIs are nonexistent so you can basically create URIs anyway you like. All .xpc and 404 URI requests are handled by the PHportal gateway file and seeks the virtual directory structure from the Objects table to see fi the request exists.

As of now the license is LGPL (free for non-commerical use.

Anyonmous visitors are just a local access role and could be given access to any permission within a Object hierarchy you like. such as 'view history' etc... By default the anyonmous role is only given access permissiosn to the 'read' method per object.

I do not have import from XLS public quite yet.

Eporting or better to say generating XLS, WORD, or RTF is based on two things that are not server but rather client dependent. First server application headers second specific application type formating and or templating that are inside the format/tpl/content-type/ folders.

For instance, in the RTf format it is based on the serrver app type header and a string template matching the RTF specs. the XLS and word is based on tabbed formatting and a server app header.

As with viewing most types of files it is fully dependent on the client's ability to view different types. If a end user does not have the acrobat reader they will not be able to view the PDF generations etc...

discussing a good API, posted 21 Jun 2002 at 22:44 UTC by groom » (Journeyer)

I touched from the end of the finger zope version 1.x and i hated (at this old time) this because of both DTML and zope badly documented __keywords__ for python products. However, i like python, but zope added things to python that python is already able to do... Well, now, i see zope 2.4x gets closer to java's way of thinkning, with interfaces class, etc. which is better. And i see now, zope is better documented. Anyway, i'm not reconciled with zope until i will have to do something out of DTML. Fortunately, php gives us classes, and swallows DTML's functionnal specs. Well, IMHO, one have to look at JAVA to begin a good API..

RE: URLs,, posted 22 Jun 2002 at 06:59 UTC by mglazer » (Journeyer)

Malx I took your advice and added the search friendly URLs as optionally available on each URI Object run. I wrote a bit about this here: http://www.advogato.org/person/mglazer/diary.html?start=18

Re: discussing a good API, posted 22 Jun 2002 at 10:07 UTC by jerry » (Journeyer)

I touched from the end of the finger zope...

At the time of Zope 1.0 I had the same problem. I wantet Zope as foundation of Askemos, but it turned out to be infeasable.

Please understand the Askemos Core API as my $0.02 take on a minimal API. (Be sure to read the overview paper on it before.)

free, for now?, posted 25 Jun 2002 at 06:35 UTC by bdodson » (Journeyer)

PHPortal is LGPL, for now. This means free for non-commercial use.

Actually that isn't what LGPL means. However, more importantly, please define "for now".

RE: free, for now?, posted 25 Jun 2002 at 07:37 UTC by mglazer » (Journeyer)

"please define 'for now'"

Let's see I believe it means as of this moment.

I could always be wrong you may want to look it up at dictionary.com just to double check.

LGPL is a lesser GPL license and my personal LGPL license does mean 'free for non-commercial use' as I stated quite clearly and is included with all distros in both the readme and the accompanied PHPortal-Xpc_LGPL license, as defined by me, thank you very much.

LGPL, posted 26 Jun 2002 at 14:34 UTC by jamesh » (Master)

You should really consider using a different name for your licence. The name LGPL is generally understood to mean the GNU LGPL and using the acronym for a different license is going to cause confusion, especially so when you don't qualify it. Using a unique name for the licence would clear up these issues.

You might also want to correct your sourceforge page, which claims that the code is under the GNU LGPL.

Note that such "no commercial use" clauses disqualify software from being Free Software or Open Source.

DTML, posted 28 Jun 2002 at 03:45 UTC by ChrisMcDonough » (Master)

If you've not used Zope in a while, and you were turned off by DTML it's time to try it again. DTML is still included and supported, but Zope Page Templates now take on the primary role of generating HTML and XML. Also, they are not really "new" (they've been around for about a year and a half) but Python Scripts allow you to code in Python through the web.

mglazer - I think PHPortal is cool, BTW.

RE: DTML, posted 28 Jun 2002 at 05:18 UTC by mglazer » (Journeyer)

Thanks Chris, its a tough crowd here. Positive feedback let alone compliments are a rare bird indeed.

I've always been a fan of Zope, turned on to it by professional programmers.

It's true the learning curve used to be steep but the new CMF, page templates and the like have really make the positives for the first time balance in favor of using and learning Zope than the opposite.

The last thing Zope needs is a broader use and acceptance in shared hosting environments. That are as inexpensive and easy to attain as it is now for Perl/PHP. Obviously Zope is different but a hosting service can use one limited instance of Zope with accounts similar to what they have done at http://freezope.nipltd.net/.

Once that niche is covered Zope will explode like wildfire because nothing comes close to Zope. Now that the learning curve issue in my mind is null the lower-end web hosting accounts and services will make it shine if that is securely possible.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page