Yii Framework 2.0 - Entwicklung von Webanwendungen

Yii ist ein Framework in PHP geschrieben, um die Entwicklung von Business-Webanwendungen agiler und standardisierter zu machen. Seine auf Komponenten basierende Architektur eignet sich sehr gut für die Entwicklung von Anwendungen, die viel Datenverkehr unterstützen müssen, die standardisierte und gut dokumentierte Entwicklungsmethoden erfordern. Dieses Framework wird für jede Webanwendung wie Portale, Business Management Systeme, Content Management verwendet Systeme (CMS), E-Commerce-Websites.

Einige Funktionen im Vergleich zu anderen Frameworks


Verwenden Sie das Muster MVC (Modell / Ansicht / Controller)Im Gegensatz zu anderen Frameworks wird jede Komponente zur besseren Ordnung und Wartung in Ordner unterteilt.
  • Codegenerierung: Yii kann CRUD-Code aus einer Datenbanktabelle generieren und die Abfragen, Listen und Formulare erstellen.
  • Integrierte jQuery- und Bootstrap-Framework-Unterstützung
  • Integrierte Zugriffskontrollmethoden zur Rollenauthentifizierung und Autorisierung
  • Es enthält ein Sicherheits- und Angriffspräventionssystem außerhalb des Webs.
  • Unterstützt von der Community entwickelte Widgets und Erweiterungen
  • Unterstützt die Verwendung von Designvorlagen

Installation des Yii-Frameworks


Es gibt zwei Versionen von Yii, eine Basic und eine Advanced. In der Basisversion sind die Benutzerdateien und die Administratordateien zusammen, in der erweiterten Version sind sie als unabhängige Systeme in zwei Ordner unterteilt Vorderes Ende Ja Backend
Um Yii 2.0 zu installieren, müssen wir die Dateien von der Yii Framework 2.0-Website von der folgenden URL herunterladen: Yii 2.0 Basic und Yii 2.0 Advanced.
Nach dem Download entpacken wir die Datei und kopieren den erweiterten Ordner auf unseren lokalen Server und benennen ihn in den Namen unseres Webprojekts um, in diesem Fall nennen wir ihn yiidemo.
Als nächstes müssen wir vom Terminal aus die Dateien der Struktur des Webs installieren, dafür führen wir Folgendes aus:
 sudo php init
Es fragt uns, ob wir es im Entwicklungs- oder Produktionsmodus ausführen möchten, wir wählen Entwicklung und bestätigen dann, damit alle erforderlichen Standardstrukturen kopiert werden.

Wenn wir zum Webordner yiidemo gehen, sehen wir, dass mehrere Ordner installiert wurden und die beiden die Backend-Webdateien für den Administrator und das Frontend für das öffentliche Web enthalten.
Wir können das Backend in einem Browser anhand der URL sehen:
http: // localhost / yiidemo / backend / web /

Wir können auch die Home-Vorlage sehen:
http: // localhost / yiidemo / frontend / web /

VERGRÖSSERN

Wie wir sehen, gibt es einige Beispielseiten, aber die Anmeldung oder Benutzerregistrierung funktioniert nicht, da sie keine Verbindung zu einer Datenbank herstellen, sondern dienen zunächst als Codebasis, auch das Design ist responsive.
Als nächstes erstellen wir die Datenbank von phpmyadmin, die wir yiidemodb nennen.
Die Tabelle für den Administrator hat die folgende Struktur
 - Tabellenstruktur für Tabelle `administrator` - CREATE TABLE IF NOT EXISTS` administrator` (`id` tinyint (3) NOT NULL,` user` varchar (50) DEFAULT NULL, `key` varchar (50) DEFAULT NULL, `email ` varchar (100) DEFAULT NULL) ENGINE = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Dump-Daten für die Tabelle `administrator` - INSERT INTO` administrator` (`id`,` user`, `password`,` email`) WERTE (1, 'admin', 'admin', '[email protected] '); Als nächstes müssen wir konfigurieren, um die Datenbank mit Yii zu verknüpfen. Dazu gehen wir in den Ordner / common / config und öffnen die Datei main_local.php. Hier sind die gemeinsamen Konfigurationen für das Backend und das Frontend 'yii \ db \ Connection ', 'dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' Benutzername '=>' root ',' Passwort '=>' ',' Zeichensatz '=>' utf8 ',]; ?> var13 -> 
Als nächstes müssen wir das Modell, den Controller und die Administratoransicht erstellen, dazu verwenden wir die URL: http: // localhost / yii… index.php?R = gii

Nachdem Sie definiert haben, welche Tabelle das Modell generieren soll, klicken Sie auf die Schaltfläche Vorschau, um zu sehen, wie die Datei aussehen würde, und dann auf Generieren, um den Code zu generieren.
Als nächstes gehen wir zum Crud-Generator, um den Code und die Ansicht, den Controller und die minimalen Funktionalitäten für die Interaktion mit der Tabelle zu erstellen. CRUD ist die Abkürzung für Create, Get, Update und Delete.

Im Crud müssen wir die Routen des Modells und des Controllers definieren, die erstellt werden, wir können auch ein Modell für die Suche hinzufügen.
Modellklasse: Backend \ Modelle \ Administrator
Modellklasse suchen: Backend \ Modelle \ Administrator \ Administratorsuche
Controller-Klasse: Backend \ Controller \ AdministratorController
Dann drücken wir Vorschau und Generieren
Dann können wir den Crud testen, den wir aus der folgenden URL generieren
http: // localhost / yii… r = Administrator

Als nächstes gehen wir in den Ordner \backend\config und öffnen die Datei main.php, in der wir die folgende Codezeile ändern:
 'identityClass' => 'allgemeine \ Modelle \ Benutzer'
Wir ändern für unser Administratormodell
 'identityClass' => Backend \ Modelle \ Administrator
Wir geben an, dass wir zum Anmelden beim Backend das Administratormodell verwenden, das im angegebenen Pfad gefunden wird.
Als nächstes gehen wir in den Ordner common\models und kopieren die Datei LoginForm.php in den Ordner backend\models, auf diese Weise trennen wir den Login, der in der gemeinsamen Form für das Backend und das Frontend vorliegt.
Der Controller, der die Anmeldung aufruft, ist SiteController.php.php, wir müssen die Datei öffnen und die Zeile ändern:
 verwenden Sie allgemeine \ Modelle \ LoginForm; 
Nach der Linie:
 Verwenden Sie Backend \ Modelle \ LoginForm;
Auf diese Weise wird beim Senden des Formulars nach LoginForm.php in gesucht Backend \ Modelle \ Administrator wie wir oben definieren.
Als nächstes müssen wir das LoginForm ändern, um es wie folgt an das Administratormodell anzupassen:
 getUser(); if (! $ user ||! $ user-> ValidatePassword ($ this-> password)) {$ this-> addError ($ Attribut, 'Falscher Benutzername oder Passwort.'); }} öffentliche Funktion login () {if ($ this-> validieren ()) {echo 'hallo'; Yii zurückgeben :: $ app-> user-> login ($ this-> getUser (), $ this-> RememberMe? 3600 * 24 * 30: 0); aufrechtzuerhalten. Sonst {Falsche zurückgeben; }} // Funktion, die einen Benutzer anhand seines Benutzernamens sucht protected function getUser () {if ($ this -> _ user === null) {// falls vorhanden, erhält sie ein Array mit allen Daten $ this -> _ user = Administrator :: findByUsername ($ this-> username); } return $ this -> _ user; }}?> var13 -> 
Als nächstes ändern wir das generierte Administratormodell und fügen hinzu Identitätsschnittstelle Dies ist eine Klasse, die verschiedene erweiterte Sicherheitsfunktionen für die Zugangskontrolle bietet. In diesem Fall ist unser Beispiel einfach, aber wir müssen sie implementieren lassen, auch wenn wir sie nicht verwenden.
 50], [['email'], 'string', 'max' => 100]]; } // Tabellenfelder public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email' ,]; } // vordefinierte Funktion in IdentityInterface, um Benutzer nach Namen zu finden public static function findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / Vordefinierte Funktion in IdentityInterface zum Suchen nach Schlüssel public function validePassword ($ password) {return static :: findOne (['key' => $ password]); } // Vordefinierte Funktion in IdentityInterface, um Benutzer nach ID zu finden public static function findIdentity ($ id) {return static :: findOne ($ id); } // Vordefinierte Funktion in IdentityInterface, um Benutzer nach Marker oder Token zu durchsuchen öffentliche statische Funktion findIdentityByAccessToken ($ Token, $ type = null) {// return static :: findOne (['access_token' => $ Token]); } // Gibt die Benutzer-ID zurück public function getId () {return $ this-> id; } // Gibt einen Schlüssel zurück, mit dem die Gültigkeit einer ID überprüft werden kann public function getAuthKey () {// return $ this-> auth_key; } // Den von der vorherigen Funktion zurückgegebenen Schlüssel validieren. öffentliche Funktion ValidateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }} 
Als nächstes müssen wir das Layout in backend \ view \ layout ändern, wir öffnen die Datei main.php
Wir suchen nach den Codezeilen:
 // Wir ändern den Namen des Webs My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' = > 'navbar-inverse navbar-fixed-top',],]); 'brandLabel' => 'My Company', Wir wechseln zu 'brandLabel' => 'My Yii Demo', // Wenn ich eingeloggt bin, zeige ich den Link Login if (Yii :: $ app-> user-> isGuest) {$ menuItems [ ] = ['label' => 'Login', 'url' => ['/site / login']]; } else {// Wenn nicht, zeige ich andere Links im Menü $ menuItems [] = ['label' => 'Logout ('. Yii :: $ app-> user-> identity-> username. ' )', ' url '=> [' /site / logout '],' linkOptions' => ['data-method' => 'post']]; } 
Hier ändern wir den Benutzer
 'label' => 'Logout ('. Yii :: $ app-> user-> identity-> username. ')',
Wir ändern für unser Benutzerfeld
 'label' => 'Logout ('. Yii :: $ app-> user-> identity-> user. ')',
Endlich können wir uns einloggen:
http: // localhost / pro… mo / backend / web /
  • Nutzer Administrator
  • Taste Administrator

VERGRÖSSERN

Die Hauptseite ist geändert von \ Backend \ Ansichten \ Site.
In einem anderen Tutorial werden wir sehen, wie Sie das Design der Hauptseite ändern, Menüs erstellen, Seiten verlinken und Funktionalitäten hinzufügen. Seien Sie aufmerksam und folgen Sie mir bei Interesse.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave