Absolute Grundlagen, wie eine Komponente funktioniert

From Joomla! Documentation

This page is a translated version of the page Absolute Basics of How a Component Functions and the translation is 100% complete.

Other languages:
বাংলা • ‎Deutsch • ‎English • ‎español • ‎eesti • ‎فارسی • ‎français • ‎हिन्दी • ‎Bahasa Indonesia • ‎italiano • ‎Nederlands • ‎Nederlands (informeel)‎ • ‎português do Brasil • ‎română • ‎русский • ‎українська

Dieser Artikel ist für Joomla! Anfänger entworfen worden; er ist entworfen worden um zu erklären, was eine Joomla! Komponente ist und wie sie funktioniert. Falls das Tutorial von einem bestimmten Komponenten Beispiel profitiert wird dieser Artikel auf eine Beispiel-Komponente namens "Hello World!" verweisen.

Was ist ein Joomlaǃ Komponente

Eine Komponente ist eine Art von Joomla! Erweiterung. Komponenten sind die Haupt-Funktionseinheiten von Joomla!; sie können auch als Mini-Applikationen gesehen werden. Eine einfache Analogie sieht Joomla! als das Betriebssystem und die Komponenten als die Desktopanwendungen. Inhalte werden normalerweise von einer Komponente erzeugt und in der Mitte des Inhaltsbereichs eines Templates angezeigt (abhängig vom Template).

Die meisten Komponenten haben zwei Hauptbestandteile: einen Administrationsbereich und einen Seitenbereich. Der Seitenbereich wird genutzt um Seiten anzuzeigen wenn sie von deinen Besuchern während des normalen Betriebs der Webseite angefordert werden. Der Administrationsbereich bietet eine Schnittstelle um die verschiedenen Aspekte der Komponente zu konfigurieren und zu verwalten. In den Administrationsbereich gelangt man mit Hilfe der Joomla! Administrationsanwendung.

Joomla! wird mit einer Reihe von Basis-Komponenten, wie die Inhaltsverwaltung, Kontaktformulare und Weblinks, ausgeliefert.

Siehe auch: Modul, Plugin, Template

Im Joomla! Framework können Komponenten entworfen werden, die ein flaches Model (gibt den HTML-Code der angefragten Seite zurück) oder das Model-View-Controller (kurz MVC) Muster nutzen.

Einführung in MVC

MVC ist ein Entwurfsmuster in der Softwareentwicklung, welches genutzt werden kann um Code zu strukturieren und so Geschäftslogik und Datenpräsentation zu trennen. Die Prämisse hinter diesem Ansatz ist, dass wenn die Geschäftslogik in einem Bereich zusammengefasst ist, dann können die Benutzerschnittstelle und -interaktion, die die Daten umgeben, überarbeitet und angepasst werden, ohne das die Geschäftslogik umprogrammiert werden muss. Ursprünglich wurde MVC entwickelt, um die traditionellen Eingabe, Verarbeitung, Ausgabe - Rollen auf eine logische GUI-Archtiektur abzubilden.

Model

Das Model ist der Teil der Komponente, der die Daten der Anwendung kapselt. Es stellt Routinen bereit, um diese Daten in einer sinnvollen Art und Weise zu verwalten und zu manipulieren. Zusätzlich bietet es Routinen, um die Daten vom Model abzurufen. Generell sollte die zugrunde liegende Technik des Datenzugriffs im Model gekapselt sein. Auf diese Weise muss nur das Model geändert werden (und nicht die View oder der Controller), wenn die Anwendung von einem System welches statt Dateien die Datenbank nutzt um Informationen zu speichern, wechselt.

View

Die View ist der Teil einer Komponente, der die Daten eines Models in einer für Interaktionen geeignete Art und Weise darstellt. Bei web-basierten Anwendungen generiert die View normalerweise eine HTML Seite für die Benutzer. Die View holt sich die Daten aus dem Model (welches wiederum die Daten vom Controller erhält) und übergibt sie an ein Template, welches mit den Daten befüllt und dem Benutzer angezeigt wird. Daten werden von der View in keinster Weise verändert, sie werden lediglich so ausgegeben wie sie vom Model empfangen wurden.

Controller

Der Controller ist verantwortlich für das Beantworten von Benutzer-Aktionen. Bei Webanwendungen ist eine Benutzer-Aktion üblicherweise eine Seiten-Anfrage. Der Controller bestimmt, welche Anfrage vom Benutzer gemacht wurde und antwortet, in dem er das Model anweist die Daten entsprechend zu verändern und das Model an die View weitergibt. Der Controller zeigt die Daten im Model nicht an sondern ruft lediglich Methoden im Model auf, welche dann die Daten modifizieren, und gibt dann das Model an die View weiter, welche die Daten anzeigt.

Joomla! Komponenten Framework erklärt

Model

Im Joomla! Framework sind Models verantwortlich für die Datenverwaltung. Die erste Funktion, die für ein Model geschrieben werden muss, ist eine "get-Funktion". Sie gibt Daten zurück an den Aufrufer. Für dieses Beispiel ist der Aufrufer die "HelloWorldViewHelloWorld" View. Standardmäßig ist das Model "HelloWorldModelHelloWorld", welches unter site/models/helloworld.php zu finden ist, das Haupt-Model für diese View.

Um die Namenskonventionen besser zu verstehen folgt nun ein Beispiel, denn Namenskonventionen sind die eigentliche "Magie", mit der alles funktioniert:

Die Klasse HelloWorldViewHelloWorld liegt in site/views/helloworld/view.html.php und nutzt die Klasse HelloWorldModelHelloWorld in der Datei site/models/helloworld.php

Angenommen, man möchte eine imaginäre View "fluffy" verwenden, würde man folgendes haben:

Die Klasse HelloWorldViewFluffy liegt in site/views/fluffy/view.html.php. Die View verwendet HelloWorldModelFluffy in der Datei site/models/fluffy.php. Anmerkung: die eigentliche Ansicht der View: site/views/fluffy/tmpl/default.php wird ebenfalls benötigt damit dieses Beispiel funktioniert.

Das Verletzen einer dieser fett gedruckten Konventionen führt zu Fehlern oder einer leere Seite.


Zugriff auf eine Joomlaǃ Komponente

Als erstes benötigt man Zugriff zur Joomla! Plattform, auf die man immer durch einen einzigen Zugriffspunkt zugreifen kann. Mit Hilfe eines Browsers navigiert man zu folgender URL:

1 Benutzer-Zugriff <deineDomain>/joomla/index.php
2 Administrator-Zugriff <deinedomain>/joomla/administrator/index.php

"Hallo Welt!"- Beispiel: localhost/joomla/index.php

Sie können die URL der Komponente, oder ein Menu nutzen, um zur Komponente zu navigieren. In diesem Artikel wird die Möglichkeit des Zugriffs über die URL dargestellt.

1 Benutzer-Zugriff <deine Seite>/joomla/index.php?option=com_<component_name>
2 Administrator-Zugriff <deine Seite>/joomla/administrator/index.php?option=com_<component_name>

Hallo Welt! Beispiel: localhost/joomla/index.php?option=com_helloworld

MVC Grundlegende Verzeichnis Struktur

Komponenten liegen in einem Verzeichnis der Joomla! Installation. Genauer gesagt in <PfadzuJoomla>/components/com_<komponenten_name>/

Die Hallo Welt! Komponente würde in <PfadZuJoomla>/components/com_helloworld/ gespeichert werden.

Eine grundlegende Komponente enthält die folgenden Dateien in ihrem Verzeichnis:

  • Eine HTML Datei mit Hintergrundfarbe aus Sicherheitsgründenː index.html
  • Eine PHP-Datei für den Controllerː controller.php
  • Eine PHP-Datei die die Controller-Klasse lädtː <komponenten_name>.php
  • Eine PHP-Datei für das Model: models/<komponenten_name>.php
  • Eine weitere HTML-Dateiː models/index.html
  • Eine PHP-Datei die die Standard-View enthält: views/<komponenten_name>/tmpl/default.php
  • Eine XML-Datei für den Menüeintrags-Typ: views/<komponenten_name>/tmpl/default.xml
  • Eine weitere HTML-Datei: views/<komponenten_name>/tmpl/index.html
  • Eine weitere HTML-Datei: views/<komponenten_name>/index.html
  • Eine PHP-Datei um die View anzuzeigen: views/<komponenten_name>/view.html.php


JEXEC

Die folgende Zeile findet man häufig am Anfang von Joomla! PHP-Dateien:

<?php
    defined('_JEXEC') or die('Restricted Access');

Dies ermöglicht einen sicheren Eingangspunkt in die Joomla! Plattform. JEXEC enthält eine detaillierte Erklärung.

Tutorials zur Entwicklung einer MVC Komponente

Um zu lernen wie man eigene MVC Komponenten entwirft gibt es für jede Joomla! Version ein Tutorial: