Zope (was: Re: PHP, HTML und deutsche Eigentümlichkeiten)

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Autor: Sebastian Stark (seb_at_todesplanet.de)
Datum: 04. Oct 2002


On Thu, Oct 03, 2002 at 06:21:18PM +0200, Michael Lestinsky wrote:
> Am 03.10.'02 schrieb Sebastian Stark:
> > Zusätzlich holst du dir mit Zope im Vergleich zu PHP eine *saubere*
> > Lösung für dynamische Seiten bzw. CM ins Haus.
>
> Äpfel und Birnen. Zope fällt bei mir mehr in die Kategorie CMS, PHP eher
> in die Kategorie Programmiersprache. Man _kann_ in PHP auch sauber
> programmieren.

Zope ist kein CMS. Man kann mit dem Zope Framework *sehr* einfach ein
CMS realisieren. Tatsächlich gibt es einen Standard, der sich CMF
(=Content Management Framework) um genau das zu tun.

Zope ist eine objektorientierte Umgebung, um dynamische Webinhalte zu
programmieren. In Python oder in Perl bzw. mit allen Erweiterungen, die
diesen Sprachen zur Verfügung stehen.

Zope ist die einzige (OpenSource) Lösung, die ich kenne, die *sinnvoll*
Logik, Inhalt und Darstellung bei einer Website voneinander trennt und
von unterschiedlichen Teams/Personen verwaltbar macht.

ZPT (Zope Page Templates) sind hier der Schlüssel: Der erzeugte "Code"
ist ein *valides* XML oder (X)HTML Dokument, kann also in beliebigen
Code Editoren (auch WYSIWYG) bearbeitet werden, ohne daß die Logik
kaputt gemacht wird. Der wirkliche (Python- oder Perl-) Code befindet
sich in extra Objekten, auf die nur verwiesen wird. Wenn man mag, kann
man ihn auch einbetten, aber das halte ich für Programme, die länger als
30 Zeichen sind unübersichtlich.

Bei PHP, oder embedded Perl usw. ist das Dokument eben kein valides HTML
oder XML mehr und der Editor muß achtgeben, das PHP nicht kaputt
zumachen. Perverserweise muß ich immer öfter feststellen, daß eine PHP
"Seite" nicht mehr in HTML eingebettetes PHP ist, sondern PHP, das per
"echo" HTML Code ausgibt. So war das sicherlich nicht geplant
ursprünglich.

Sicherlich kann man in PHP auch sauber und/oder objektorientiert
programmieren. Mit Zope/Python geht's halt einfacher.

> Oder kann man mit Zope auch so Sachen wie http://www.lestinsky.de/koch-suite
> realisieren?

Wenn ich es richtig sehe, ist das eine klassische Portalsite, mit member
login usw. Man kann Rezepte einsenden und die andere durchgucken. Das
ist *DER* Anwendungsfall schlechthin für Zope. Benutzerverwaltung z. B.
ist schon integriert, man kann den Benutzern Rollen zuweisen, die über
ACLs (Access Control Lists) diverse Rechte auf Objekte bekommen können
(ein Objekt kann ein Verzeichnis, ein Bild, ein Text usw. sein).

Auch solche Sachen wie Session Control usw. sind überhaupt kein Thema,
es ist einfach da.

Was in diesem Zusammenhang vielleicht nicht so wichtig ist, aber dennoch
ein interessanter Punkt: Zope ist clusterfähig. Ist ein Server
überlastet, stellt man einen zweiten hin und fertig. Lastverteilung usw.
macht alles Zope.

Die gesamte Verwaltung der Website kann entweder über das integrierte
Webinterface erfolgen (schlauen Usern/Kunden kann man beschränkten
Zugriff darauf geben, um ihre Seiten zu verwalten, z. B. eine Liste mit
Artikeln zu pflegen etc.) oder aber wahlweise über die Protokolle ftp
oder WebDAV. Ich benutze den cadaver commandline webdav client und
editiere alles mit vim, im xml bzw. python mode. Manchmal benutze ich
auch den webdav_kioslave von KDE3/konqueror.

Zope kennt viele Konzepte der Objektorientierung, vor allem ein an die
Vererbung angelehntes Konzept, die "Acquisition". Eine index.html im
Verzeichnis "/bla" kann einfach so auch im Verzeichnis "/bla/blubb"
aufgerufen werden. Solange es in blubb nicht auch eine index.html gibt,
wird im übergeordneten Verzeichnis danach gesucht. Noch nie habe ich so
schnell Photoalben, Gästebücher oder ähnliches erstellt. (Erstellt,
nicht runtergeladen und installiert :) ).

Das Duplizieren einer Site ist mit zwei Mausklicks erledigt (export in
eine XML Datei, *ALLES* ist darin enthalten auch Bilder, Konfiguration
etc.) und importieren in einen andere Zope Server.

CVS Verwaltung wird unterstützt.

Die Dateien (Objekte, es sind nicht wirklich Dateien) sind in der Regel
kurz (unter 100 Zeilen) und damit übersichtlich. Teamorientiertes
Arbeiten wird sehr erleichtert.

Kurz: Dinge wie Portal Sites, Shops, interaktive Inhalte (WiKis oder so)
sind in Zope in sekundenschnelle erledigt und ich halte es auch nicht
für einen Overkill, zope ausschließlich für den Betrieb eines Gästebuchs
oder anderer Kleinigkeiten zu verwenden. Obwohl es vermutlich Overkill
ist.

Achja, noch ein Vorteil: Zope ist komplett in Python implementiert,
läuft also auf allen Plattformen, für die es Python gibt.

Nun ist das hier doch noch zu einer Zope Werbemail ausgeartet, aber es
ist ja evtl. doch für den einen oder anderen von Interesse.

Achja, eins noch: Die Zope Doku folgt dem Wiki Prinzip. Kleine
Informationsfetzen, die man meistens über eine Volltextsuche in google
oder auf den jeweiligen Sites raussucht. Systematische Anleitungen sind
dünn gesäht und oft ebenfalls interaktiv (z. B. das "Zope Book"). Das
kann man gut finden oder auch nicht. Am Anfang fand ich es nervig (kein
"man zope") aber man gewöhnt sich daran. Learning by doing ist hier
angesagt. Und die Lernkurve steigt zu Beginn rasch an.

-- 
Free your mind and your ass will follow -- http://www.funkaffair.de

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.4 : 04. Oct 2002 CEST