Intro Dokumentation | Download als POD | Wie kann ich hier etwas ändern?

NAME

Catalyst::Manual::Tutorial::Intro - Catalyst Tutorial - Teil 1: Einführung

ÜBERSICHT

Dies ist Teil 1 von 9 des Catalyst Tutorials.

L<Tutorial Übersicht|Catalyst::Manual::Tutorial>

  1. Einführung

  2. Catalyst Gundlagen?

  3. Grundlegendes CRUD?

  4. Authentifizierung?

  5. Autorisierung?

  6. Debuggen?

  7. Testen?

  8. Fortgeschrittenes CRUD?

  9. Anhang?

BESCHREIBUNG

Dieses Tutorial ist eine mehrteilige Einführung, in das Catalyst Web-Framework. Es versucht eine möglichst schnelle Übersicht, über viele der gebräuchlichsten Features zu geben. Der zentrale Inhalt besteht aus praxisbezogenen, bewährten Methoden, die für die Erstellung fast aller Catalyst-Applikationen benötigt werden.

Auch wenn die primäre Zielgruppe dieses Tutorials Nutzer sind, die noch keine Erfahrung mit Catalyst haben, so mögen selbst erfahrene Catalystprogrammierer einzelne Kapitel hilfreich finden (z.B. wie man DBIC für die eigenen Modell-Klassen verwendet, oder wie Authentifizierung und Autorisierung zu einer bestehenden Anwendung hinzugefügt werden können).

Der Code für alle Beispiele dieses Tutorials kann mit folgendem Befehl vom Catalyst Subversionrepository geladen werden:

    svn co http://dev.catalyst.perl.org/repos/Catalyst/tags/examples/Tutorial/MyApp/5.7/ CatalystTutorial

Dies läd den aktuellen Code für alle Kapitel des Tutorials in das CatalystTutorial Verzeichnis. Jedes Verzeichnis der Beispielapplikation trägt den selben Namen, wie das entsprechende Kapitel.

Diese Referenzimplementierungen werden bereit gestellt, damit beim Durcharbeiten des Tutorials sicher gestellt werden kann, dass die Entwicklungsumgebung richtig eingerichtet ist, beim Abtippen des Codes keine Fehler gemacht wurden oder ein Teil des Tutorials versehendlich übergangen wurde.

Außerdem kann das Beispielprogramm und alle damit zusammenhängenden Module auf den lokalen Computer geladen werden, indem Task::Catalyst::Tutorial über das CPAN installiert wird:

     cpan Task::Catalyst::Tutorial

Dies stellt auch sicher, dass alle Abhängigkeiten funktionieren. Falls bei der Installation Probleme auftreten, bieten der IRC-Channel #catalyst oder die Catalyst Mailingliste Hilfe an.

Zu den behandelten Themen gehören:

  • Eine einfache Applikation, die Bücher anlegt und auflistet.

  • Die Verwendung von DBIx::Class? (DBIC) für das Modell.

  • Wie CRUD (Create, Read, Update, and Delete; Erstellen, Lesen, Aktualisieren und Löschen) Funktionen in Catalyst geschrieben werden.

  • Authentifizierung ("auth").

  • Rollenbasierte Autorisierung ("authz").

  • Beispiele um die Verwendung aktueller (5.7XXX) Catalyst Praktiken zu demonstrieren. Zum Beispiel die Verwendung von Catalyst::Action::RenderView?, DBIC, Catalyst::Plugin::ConfigLoader? mit myapp.yml , die Verwendung von lib/MyApp/Controller/Root.pm als Alternative zu lib/MyApp.pm , etc.

  • Die Verwendung von Template Toolkit (TT) und von Catalyst::Helper::View::TTSite?.

  • Nützliche Techniken zur Fehlereingrenzung und -beseitigung in Catalyst Applikationen.

  • Die Verwendung von SQLite als Datenbank (zusätzlich wird Code für MySQL und PostgreSQL bereit gestellt).

  • Die Verwendung von HTML::Widget? zur automatisierten Verarbeitung und Prüfung von Formularen.

Das Hauptanliegen dieses Tutorials ist der Lernprozess. Die Anzahl der Kommentare in dem hier gezeigten Code würde z.B. in einem "normalen Projekt" als zu Überladen bezeichnet werden. Aufgrund ihres direkten Bezugs zum Code werden in diesem Tutorial Inline Kommentare grundsätzlich gegenüber einer seperaten Besprechung im Text bevorzugt. Es wird außerdem versucht, mehrere Wege aufzuzeigen, mit denen das selbe Ergebnis erreicht werden kann (grundsätzlich sollte man aber möglichst konsistent im eigenen Produktivcode sein).

Außerdem versucht dieses Tutorial die Anzahl der verwendeten Controller, Modelle, TT Templates und Datenbanktabellen zu minimieren. Auch wenn dies dazu führt, dass alles ein wenig gestellt aussieht, sollten sich die grundsätzlichen Verfahren auf komplexere Umgebungen übertragen lasssen. Umfangreichere und komplexere Beispielanwendungen können in dem Bereich examples des Catalyst Subversionrepositorys unter http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/ gefunden werden.

Anmerkung: Es ist eine Vielzahl weiteren, einführenden Materials auf der Catalyst Webseite unter http://dev.catalyst.perl.org/wiki/UserIntroductions und http://dev.catalyst.perl.org/ verfügbar.

VERSIONEN UND KONVENTIONEN IN DIESEM TUTORIAL

Dieses Tutorial wurde unter zuhilfenahme folgender Mittel erstellt. Es sollte beachtet werden, dass evtl. Anpassungen für verschiedene Umgebungen vorgenommen werden müssen.

  • Bestriebssystem = CentOS 4 Linux (RHEL 4)

  • Catalyst v5.7

  • Catalyst::Devel v1.02

  • DBIx::Class v0.06003

  • Catalyst Plugins

    Die Plugins, die in diesem Tutorial Verwendung finden, haben alle so stabile APIs, dass es nicht nötig sein sollte, sich über Versionsnummern gedanken zu machen. Gleichwohl mag es vorkommen, dass das Tutorial in Einzelfällen durch eine bestimmte Version eines Plugins beeinträchtigt sein könnte. Dieses Tutorial wurde mit den folgenden Plugins getestet:

    • Catalyst::Plugin::Authentication -- 0.09

    • Catalyst::Plugin::Authentication::Store::DBIC -- 0.07

    • Catalyst::Plugin::Authorization::ACL -- 0.08

    • Catalyst::Plugin::Authorization::Roles -- 0.04

    • Catalyst::Plugin::ConfigLoader -- 0.13

    • Catalyst::Plugin::HTML::Widget -- 1.1

    • Catalyst::Plugin::Session -- 0.12

    • Catalyst::Plugin::Session::State::Cookie -- 0.05

    • Catalyst::Plugin::Session::Store::FastMmap -- 0.02

    • Catalyst::Plugin::StackTrace -- 0.06

    • Catalyst::Plugin::Static::Simple -- 0.14

  • Da der Browser auf der selben Maschiene benutzt wird, auf der auch Perl und der Catalyst Enwicklungsserver laufen, wird die URL http://localhost:3000 verwendet (der Catalyst Entwicklungsserver läuft standartmässig auf Port 3000). Falls Perl auf einer Anderen Maschiene installiert ist als der Browser (oder einen anderen Port verwendet, indem die Option -p port_number auf dem Entwicklungsserver benutzt wird), sollte die URL entsprechend geändert werden.

  • Abhängig von dem verwendeten Webbrowser, kann es sein, dass zum neu Laden der Seite die entsprechende Schaltfläche mit gedrückter Shift -Taste geklickt werden muss. Außerdem kann die -k keepalive Option des Entwicklungsserver für einige Browser notwendig sein (besonders für den Internet Explorer).

CATALYST INSTALLATION

Unglücklicherweise ist die schwerste Aufgabe für Catalyst Neulinge die Installation. Auch wenn es eine der größten Stärken von Catalyst ist, dass es leicht viele der Module aus dem umfangreichen CPAN-Archiv verwenden kann, kann dies darin resultieren, dass die Erstinstallation sowohl zeitaufwendig als auch frustrierend sein kann. Andererseits gibt es eine wachsende Anzahl an Vorgehensweisen, die diese Aufgabe stark vereinfachen können. Aus dieser Vielzahl sind die folgenden am ehesten für neue Benutzer geeignet:

  • Matt Trouts cat-install

    Verfügbar unter http://www.shadowcatsystems.co.uk/static/cat-install, kann cat-install ein schneller und einfacher Weg sein, um Catalyst an's laufen zu bringen. Einfach das oben verlinkte Script herunterladen und perl cat-install eingeben.

  • Chris Lacos CatInABox

    Das Tar-Archiv unter http://handelframework.com/downloads/CatInABox.tar.gz herunterladen und auf dem eigenen Computer entpacken. Dann abhängig vom Betriebssystem entweder start.bat oder start.sh ausführen.

  • Vorgefertigte VMWare Images

    Unter dem VMWare community program wird momentan daran gearbeitet, eine Anzahl an VMWare Images zu entwickeln, die bereits eine komplette Catalyst Entwicklungsumgebung beinhalten, komplett mit Datenbanken und der vollen Auswahl an Catalyst Plugins.

Weitere Informationen und Empfehlungen für die Catalyst Installation sind unter Catalyst::Manual::Installation? zu finden.

Anmerkung: Schrit-für-Schrit Anleitungen für das Einrichten einer Umgebung, die der entspricht die in diesem Tutorial verwendet wird, findet man unter Catalyst::Manual::Installation::CentOS4?. Unter zuhilfenahme dieser Anleitung sollte es möglich sein, ein komplettes CentOS 4.X server inclusive Catalyst und allen benötigten Plugins aufzusetzen, die nötig sind um dieses Tutorial durchzuarbeiten.

DATENBANKEN

Dieses Tutorial wird sich hauptsächlich auf SQLite beziehen, da es einfach zu installieren und zu nutzen ist. Änderungen am Script, die notwendig sind, um MySQL und PostgreSQL zu verwenden, sind in Anhang 2 beschrieben.

Anmerkung: Einer der Vorteile des MVC-Designmodells ist, dass Applikationen viel unabhängiger von der Datenbank werden. Daher wird man feststellen können, dass ausschließlich die .sql -Dateien, die zum aufsetzen der Datenbanken verwendet werden, für unterschiedliche Datenbanken angepasst werden müssen. Der Catalyst-Code selbst bleibt grundsätzlich der selbe.

BEZUGSQUELLEN FÜR FUNKTIONIERENDEN CODE

Im Hauprepository des Catalyst Subversion-Servers ist der vollständige Code jedes Teils dieses Tutorials verfügbar (siehe Anmerkung zu Begin jedes Teils für den entsprechenden svn-Befehl). Außerdem ist der endgültige Code als Tar-Archiv unter http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/Tutorial/Final_Tarball/MyApp.tgz verfügbar.

Anmerkung: Die Tests des endgültigen Codes können mit Hilfe der folgenden Befehle ausgeführt werden:

    wget http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/Tutorial/Final_Tarball/MyApp.tgz
    tar zxvf MyApp.tgz
    cd MyApp
    CATALYST_DEBUG=0 prove --lib lib  t

AUTOR

Kennedy Clark, hkclark@gmail.com

Please report any errors, issues or suggestions to the author. The most recent version of the Catalyst Tutorial can be found at http://dev.catalyst.perl.org/repos/Catalyst/trunk/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/.

Copyright 2006, Kennedy Clark, under Creative Commons License (http://creativecommons.org/licenses/by-nc-sa/2.5/).

ÜBERSETZER

Jürgen Peters, taulmarill at xgn dot de

Topic revision: 2008-01-21, JuergenPeters
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.