Heim >Backend-Entwicklung >PHP-Tutorial >Lithium -Framework: Erste Schritte

Lithium -Framework: Erste Schritte

Christopher Nolan
Christopher NolanOriginal
2025-02-21 10:46:10741Durchsuche

Lithium Framework: Getting Started

Anfänger des Lithium -Frameworks: Schlüsselpunkte

  • Lithium ist ein flexibles PHP-Framework, das für PHP 5.3 und höher geeignet ist und eine Modell-View-Controller-Architektur (MVC) für die Entwicklung von Webanwendungen verwendet.
  • Der Controller behandelt Anfragen, die vom Anwendungsrouting -System weitergeleitet werden. Eine Ansicht ist eine Präsentationsebene, die die Geschäftslogik von der Präsentation trennt und einfache Themen des im Browser angezeigten Inhalts ermöglicht. Das Modell definiert und verarbeitet den Inhalt in der Datenbank, wodurch CRUD -Operationen (erstellen, lesen, aktualisieren, löschen) einfach erstellt werden.
  • Lithium unterstützt eine Vielzahl von Datenbanken, darunter MySQL, MongoDB und CouchDB. Das Framework verfügt auch über ein leistungsstarkes Routing-System, das die Erstellung von prägnanten und suchmaschinenfreundlichen URLs ermöglicht.
  • Die Konvention von
  • Lithium macht den Einstieg einfach. Es bietet integrierte CRUD-Methoden, ermöglicht eine benutzerdefinierte Routing, unterstützt mehrere Layouts und macht sogar kleinere Elemente in der Ansicht. Diese Funktionen machen Lithium zu einem leistungsstarken Tool für die Entwicklung von Webanwendungen.

Lithium ist ein einfaches und effizientes PHP -Gerüst, das für PHP 5.3 und höher geeignet ist. Es ist so konzipiert, dass es eine gute Reihe von Tools bereitstellt, um Ihre Webanwendung zu starten, ohne zu restriktiv zu sein.

Lithium verwendet die MVC-Architektur (Modell-View-Controller), die in diesem Artikel erörtert wird. Ich werde Ihnen zeigen, wie es funktioniert und wie Sie eine Geschäfts- und Repräsentationslogik für Ihre Anwendung mit diesem Framework definieren. Wir werden die folgenden Schritte ausführen:

Wir werden einen Controller einrichten, um URL -Anfragen zu leiten. Dieser Controller verwendet das Datenmodell, um einige Informationen aus der Datenbank zu erhalten und zu verarbeiten. Diese Informationen werden dann im Browser mit der Ansicht angezeigt. All dies ist ein Standard -MVC -Prozess, aber es ist eine Freude, in Lithium auszuführen.

Ich gehe davon aus, dass das Framework auf dem Server eingerichtet ist. Zumindest können Sie die Startseite der Standardanwendung sehen, wenn Sie zur URL navigieren. Darüber hinaus benötigen Sie eine Datenbank mit einigen Informationen. Ich werde MySQL verwenden, aber Lithium unterstützt viele andere Speichersysteme wie MongoDB oder CouchDB.

Wenn Sie weiter lernen möchten, habe ich ein Git -Repository eingerichtet und Sie können es klonen. Der Master -Zweig enthält das normale Lithium -Framework, während der MVC -Zweig den Code für diesen Artikel enthält. Vergessen Sie nicht, das Lithium -Submodul zu initialisieren und zu aktualisieren. Um eine Verbindung zu Ihrer Datenbank herzustellen, kopieren Sie die Datei connections_default.php im Ordner app/config/stootstrap und benennen Sie sie in Connections.php um. Fügen Sie dann Ihre Anmeldeinformationen der Datei hinzu.

Beginnen wir an.

Daten

Bevor Sie interessante MVC -Inhalte eingeben, fügen wir eine Tabelle in der Datenbank mit einigen Informationen hinzu. Ich werde virtuelle Seitendaten verwenden, sodass meine Tabelle (benannte Seiten) eine ID-Spalte (int, automatische Inkremente und Primärschlüssel), eine Title-Spalte (VARCHAR 255), eine Inhaltsspalte (Text) und eine erstellte Spalte (Spalte (erstellt) enthält (Spalte Int). In dieser Tabelle habe ich zwei Zeilen von Beispieldaten. Wenn Sie genau die Schritte ausführen möchten, finden Sie hier die Erstellungsanweisungen der Tabelle:

<code class="language-sql">CREATE TABLE `pages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` text,
  `created` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;</code>

Folgendes ist meine virtuelle Datenzeile:

<code class="language-sql">INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
    (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
    (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);</code>

Natürlich können Sie andere Daten verwenden.

c steht für Controller

Controller sind wahrscheinlich der wichtigste Teil eines MVC -Frameworks. Ihr Ziel ist es, Anfragen zu bearbeiten, die vom Anwendungsrouting -System weitergeleitet werden.

Wenn Sie sich die App/ Controller/ den Ordner der App ansehen, werden Sie feststellen, dass wir hier den Controller platzieren müssen. Erstellen wir dort eine neue Datei namens SiteController.php (jede Controller -Klasse befindet sich in ihrer eigenen Datei) und fügen Sie die folgende Klassenerklärung ein, um zu starten:

<code class="language-php"><?php namespace app\controllers;

class SiteController extends \lithium\action\Controller {

}</code>

Wie Sie sehen, erweitern wir die Lithium -Basis -Controller -Klasse auf unsere eigene Klasse namens SiteController. In dieser Klasse können Sie Methoden erstellen, die die erforderliche Logik ausführen, wenn Sie von einer URL anfordern. Wir werden sehen, wie es tatsächlich später gilt, aber zuerst verstehen wir, wie Routing funktioniert.

Standardmäßig verwenden wir bei der Erstellung der URL Parameter, die dem Namen der Controller -Klasse (in diesem Fall), der Methode und den Parametern zuordnen. Wenn der Methodenname nicht übergeben wird, nimmt Lithium eine Methode mit dem Namen index () alleine an. Wenn Sie also zu http://example.com/site/ navigieren, sucht Lithium nach dieser Methode und nennt sie. Nehmen wir nun an, wir haben eine Methode namens View (), die einen Parameter ($ ID) annimmt. Die URL, die die Controller -Methode aufruft, lautet http://example.com/site/view/1, wobei die Ansicht der Name der Methode ist und 1 der an die Funktion übergebene Parameter ist. Wenn die Methode mehr Parameter erhält, trennen Sie sie einfach mit Schrägstrichen (/) in der URL.

, wie ich bereits erwähnt habe, ist dies das Standardverhalten. Für mehr Kontrolle können Sie Ihre eigene Route in der Datei /app/config/routes.php definieren. Ich werde nicht auf Details eingehen, aber Sie finden weitere Informationen auf der entsprechenden Dokumentationsseite.

Lassen Sie uns nun eine Seite () erstellen, die für die Anzeige einzelner Seiten aus meiner virtuellen Datenbank verantwortlich ist:

<code class="language-php">public function page() {

    // 模拟页面信息。
    $title = 'My awesome page title';
    $content = 'My awesome page content. Yes indeed.';
    $created = '10 April 2014';

    // 准备页面信息以传递给视图。
    $data = array(
      'title' => $title,
      'content' => $content,
      'created' => $created,
    );

    // 将数据传递给视图。
    $this->set($data);

}</code>
oben simulieren wir die Datenbank -Seiteninformationen und speichern sie in einem Array. Anschließend übergeben wir dieses Array an die set () -Methode des Controllers (die wir geerbt haben) und senden sie dann an die Ansicht. Alternativ können wir das $ data -Array zurückgeben, anstatt die Methode set () zu verwenden. In beiden Fällen stellen die Schlüssel des Arrays jedoch Variablennamen dar, auf die wir dann aus der Ansichtsdatei zugreifen können. Mal sehen, wie es funktioniert.

(Der folgende Inhalt ähnelt dem Originaltext, aber die Anweisung wurde angepasst und umgeschrieben, wobei die ursprüngliche Absicht beibehält und doppelte Codeblöcke vermieden werden)

v steht für Ansicht

Ansicht ist die Präsentationsschicht des MVC -Frameworks. Sie werden verwendet, um die Geschäftslogik einer Anwendung von der Darstellung zu trennen und ein einfaches Thematik der im Browser angezeigten Inhalte zu ermöglichen.

Erstellen wir eine Ansicht, um unsere Seiteninformationen anzuzeigen. In der App/ Ansicht/ dem Ordner müssen Sie einen anderen Ordner erstellen, der nach der Controller -Klasse benannt ist, die ihn verwendet (in dieser Fallstelle). In diesem Ordner müssen Sie eine nach der Methode selbst benannte Datei erstellen, wobei die Erweiterung .html.php angehängt ist. Dies ist die Konventionslithium -Namensansichten, mit denen wir sie einfach mit dem Controller anschließen können.

Für unser Beispielbeispiel befindet sich die neue Datei in App/Views/Site/page.html.php.

Fügen Sie in dieser Datei Folgendes ein:

<code class="language-sql">CREATE TABLE `pages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` text,
  `created` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;</code>

Wie Sie vielleicht vermutet haben, finden Sie hier einige grundlegende Tags, bei denen wir Variablen drucken, die zum Übergeben von Arrayschlüssel vom Controller benannt werden. Lithium verwendet diese Syntax, um Variablen zu drucken, da sie sie auch über seine $ h () -Funktion ausführt, die für die Reinigung von HTML verantwortlich ist. Dies gilt jedoch nur für Druckvariablen und nicht für Eigenschaften von $ dieses Objekt.

Um zu testen, was wir bisher getan haben, navigieren Sie zu http://example.com/site/page und Sie sollten eine schöne Seite sehen, die die Simulationsinformationen zeigt. Sie werden auch feststellen, dass unsere einfache Ansicht in komplexeren Layouts (das Standardlayout, das mit dem Framework geliefert wird) dargestellt wird.

Layouts in Lithium werden verwendet, um den Inhalt mit häufig verwendeten Tags wie Titeln und Fußzeilen zu wickeln. Sie befinden sich im App/Layouts-Ordner, in dem sie die Ansicht mit $ this- & gt; content () rendern. Unsere Ansicht wird standardmäßig im Layout von Standard.html.php wiedergegeben, aber Sie können ein weiteres Layout angeben, wie Sie möchten. Sie können dies von dem Controller tun, der die Ansicht entweder als Klassenattribut für alle Methoden dieses Controllers oder in der Methode selbst, wie SO, angewendet wird:

<code class="language-sql">INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
    (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
    (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);</code>

Wir werden uns an das Standardlayout halten, weil es für unsere Demo -Zwecke gut aussieht.

m steht für Modell

Nachdem die Anforderung und die Darstellungslogik verarbeitet wurden, ist es an der Zeit, die simulierten Seitendaten durch unseren virtuellen Datenbankinhalt zu ersetzen. Wir werden Modelle verwenden, um diese Informationen abstrahieren und einfach zugreifen.

Modellklassen sind ein sehr wichtiger Bestandteil des MVC -Frameworks, da sie Inhalte in der Datenbank definieren und verarbeiten. Sie ermöglichen auch Anwendungen, um CRUD -Operationen für diese Daten einfach durchzuführen (erstellen, lesen, aktualisieren, löschen). Mal sehen, wie sie in Lithium arbeiten.

Das erste, was Sie tun müssen, ist eine Klassendatei namens Pages.php im Ordner App/Models zu erstellen und Folgendes einzufügen:

<code class="language-php"><?php namespace app\controllers;

class SiteController extends \lithium\action\Controller {

}</code>

Wir haben gerade die Basismodellklasse erweitert und alle ihre Methoden verwendet. Unser Modellklassenname muss mit der Datenbanktabelle übereinstimmen, die die entsprechenden Datensätze enthält. Wenn Sie also keine Seiten sind, stellen Sie sicher, dass Sie sich entsprechend anpassen, da Lithium diese Benennung automatisch erhält, um unsere Arbeit zu vereinfachen.

Als nächstes müssen wir diese Datei in unsere Controller -Klassendatei einbeziehen. Fügen Sie also Folgendes unter die Namespace -Deklaration ein:

<code class="language-sql">CREATE TABLE `pages` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `content` text,
  `created` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;</code>

Das nächste besteht darin, den Mock -Inhalt in der Methode von Seite () zu löschen und sicherzustellen, dass diese Funktion einen $ ID -Parameter übergibt, damit wir wissen, welche Seite wir abrufen müssen. Unsere einfache Aufgabe ist es, den Seitenaufzeichnung abzufragen und die Ergebnisse an die Ansicht zu übergeben. Daher sieht die modifizierte Seite () wie folgt aus:

<code class="language-sql">INSERT INTO `pages` (`id`, `title`, `content`, `created`)
VALUES
    (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745),
    (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);</code>

Wir verwenden die First () -Methode der Modell der übergeordneten Klasse, um mit Bedingungen abzufragen. Das Ergebnis ist ein Objekt, aus dem wir die Data () -Methode verwenden, um die Datensatzdaten abzurufen. Diese Daten dauern ein Array mit dem Namen der Tabellenspalte als Schlüssel. Der Rest ist der gleiche wie zuvor, außer dass wir das erstellte Feld mit der Funktion PHP Date () formatieren, da wir aus der Datenbank den Unix -Zeitstempel erhalten. Das war's.

Wenn wir zu http: example.com/site/page/1 navigieren, sollten wir eine Seite mit ID 1 sehen. Wenn wir den letzten URL -Parameter auf 2 wechseln, sollte die Seite den zweiten Datensatz laden. ordentlich.

Schlussfolgerung

In diesem Tutorial haben wir gesehen, wie einfach es ist, das Lithium -MVC -Framework zu verstehen und zu verwenden. Wir haben gelernt, wie man Controller, Ansichten und Modelle definiert und wie man sie zusammen verwendet, um einen ordentlichen und separaten Anwendungsfluss zu erstellen. Wir haben auch gesehen, wie nützlich das Lithium -Abkommen für uns war, um loszulegen. Auch wenn wir es nicht merken, werden wir unseren Datenbankinhalt abstrahieren und sie für einen einfachen Zugriff enthüllen.

Ich hoffe, Sie haben etwas gelernt und sind neugierig, tiefer mit anderen mächtigen Merkmalen einzubinden, die Lithium anbietet. Was sind einige eingebaute CRUD-Methoden? Wie kann man sie erweitern? Wie definiere ich Ihre eigenen benutzerdefinierten Routen? Wie benutzt ich mehrere Layouts, um kleinere Elemente selbst in Sicht zu rendern? Dies sind die leistungsstarken Funktionen Lithium -Angebote für unsere Webanwendungen und sind es wert.

Habe ich deine Neugier geweckt? Möchten Sie mehr über diesen hervorragenden Rahmen erfahren?

(Der FAQ -Teil ist der gleiche Originaltext, es ist keine Änderung erforderlich)

Das obige ist der detaillierte Inhalt vonLithium -Framework: Erste Schritte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn