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:
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;
Folgendes ist meine virtuelle Datenzeile:
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);
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:
<?php namespace app\controllers; class SiteController extends \lithium\action\Controller { }
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:
public function page() { // 模擬頁面信息。 $title = 'My awesome page title'; $content = 'My awesome page content. Yes indeed.'; $created = '10 April 2014'; // 準(zhǔn)備頁面信息以傳遞給視圖。 $data = array( 'title' => $title, 'content' => $content, 'created' => $created, ); // 將數(shù)據(jù)傳遞給視圖。 $this->set($data); }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:
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;
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:
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);
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:
<?php namespace app\controllers; class SiteController extends \lithium\action\Controller { }
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:
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;
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:
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);
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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen





H?ufige Probleme und L?sungen für den variablen PHP -Umfang umfassen: 1. Die globale Variable kann innerhalb der Funktion nicht zugegriffen werden, und sie muss bei der Verwendung des globalen Schlüsselworts oder Parameters übergeben werden. 2. Die statische Variable wird statisch deklariert und nur einmal initialisiert und der Wert wird zwischen mehreren Aufrufen beibehalten. 3.. Hyperglobale Variablen wie $ _get und $ _post k?nnen direkt in jedem Bereich verwendet werden, aber Sie müssen auf eine sichere Filterung achten. 4. Die anonymen Funktionen müssen über das Schlüsselwort verwenden, und wenn Sie externe Variablen ?ndern, müssen Sie eine Referenz übergeben. Das Beherrschen dieser Regeln kann dazu beitragen, Fehler zu vermeiden und die Code -Stabilit?t zu verbessern.

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

Es gibt drei g?ngige Methoden für den PHP -Kommentarcode: 1. Verwenden Sie // oder #, um eine Codezeile zu blockieren, und es wird empfohlen, // zu verwenden. 2. Verwenden Sie /.../, um Codebl?cke mit mehreren Zeilen zu wickeln, die nicht verschachtelt werden k?nnen, aber gekreuzt werden k?nnen. 3.. Kombinationskenntnisse Kommentare wie die Verwendung / if () {} / Um Logikbl?cke zu steuern oder um die Effizienz mit Editor -Verknüpfungsschlüssel zu verbessern, sollten Sie auf die Schlie?ung von Symbolen achten und das Verschachteln bei der Verwendung vermeiden.

AgneeratorinphpiSamemory-effizientes WaytoiterateOverlargedatasetsByyieldingValueatimeinsteadofReturningThemallatonce.1.GeneratorsusetheyieldKeywordtoproduktenvaluesonDemand, ReducingMemoryUsage.2.TheyareusefulforfulforfulfordlingBiglopploups, Lesebiglochen, Leselungen, Lesebigs, Leselung, oder

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Kl?rung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erkl?ren, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilit?t der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen k?nnen die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

Toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1.onwindows, download undInstallxampp, SelectComponents, Startapache und PlaceFilesinhtdocscs.2.Anternativ, manuellinstallphpfrfr

Tolearnphpeffectival, startbysettingupalocalerverenVironmentusexs -LikexamppandacodeeditorikevScode.1) InstallxamppForapache, MySQL und Php.SeacodeeditorForsyntaxSupport.3) testyourscludingveliktingveliktelaThbiliodble.Neclyble.NektFile

In PHP k?nnen Sie quadratische Klammern oder lockige Klammern verwenden, um Zeichenfolgenspezifikationsspezifische Indexzeichen zu erhalten, aber quadratische Klammern werden empfohlen. Der Index startet von 0 und der Zugriff au?erhalb des Bereichs gibt einen Nullwert zurück und kann keinen Wert zugewiesen; MB_SUBSTR ist erforderlich, um Multi-Byte-Zeichen zu verarbeiten. Zum Beispiel: $ str = "Hallo"; echo $ str [0]; Ausgabe H; und chinesische Zeichen wie Mb_Substr ($ str, 1,1) müssen das richtige Ergebnis erzielen. In den tats?chlichen Anwendungen sollte die L?nge der Zeichenfolge vor dem Schleifen überprüft werden, dynamische Zeichenfolgen müssen für die Gültigkeit verifiziert werden, und mehrsprachige Projekte empfehlen, Multi-Byte-Sicherheitsfunktionen einheitlich zu verwenden.
