Yii Framework 2.0 – Entwicklung von Webanwendungen

yii.jpg

Yii ist ein Framework, das in PHP geschrieben wurde, um die Entwicklung von Business-Webanwendungen agiler und standardisierter zu gestalten. Die auf Komponenten basierende Architektur eignet sich sehr gut für die Entwicklung von Anwendungen, die viel Datenverkehr unterstützen müssen, Standardentwicklungsmethoden erfordern und gut dokumentiert sind. Dieses Framework eignet sich für alle Webanwendungen wie Portale, Unternehmensverwaltungssysteme und Content-Management-Systeme (CMS), E-Commerce-Websites.

Einige Funktionen in Bezug auf andere Rahmenbedingungen

Es verwendet das MVC- Muster (Model / Vista / Controller) . Im Gegensatz zu anderen Frameworks werden die einzelnen Komponenten zur besseren Ordnung und Wartung in Ordner unterteilt.

  • Codegenerierung: Yii kann CRUD-Code aus einer Datenbanktabelle generieren und Abfragen, Listen und Formulare erstellen.
  • Unterstützt das integrierte Framework von jQuery und Bootstrap
  • Integrierte Zugriffskontrollmethoden für Authentifizierung und Rollenautorisierung
  • Es enthält ein externes Sicherheits- und Angriffspräventionssystem für das Web.
  • Unterstützt von der Community entwickelte Widgets und Erweiterungen
  • Unterstützt die Verwendung von Designvorlagen

Installieren des Yii Frameworks

y otra Avanzada . Es gibt zwei Versionen von Yii, eine Basic- und eine Advanced- Version. Die Basisversion der Benutzer- und Administratordateien ist zusammen, in der erweiterten Version sind sie als separate Frontend- und Backend-Systeme in zwei Ordner unterteilt

Um Yii 2.0 zu installieren, müssen wir die Dateien von der Yii Framework 2.0-Website von den folgenden URLs herunterladen: Yii 2.0 Basic und Yii 2.0 Advanced .

. Entpacken Sie die heruntergeladene Datei, kopieren Sie den erweiterten Ordner auf unseren lokalen Server und benennen Sie ihn mit dem Namen unseres Webprojekts um. In diesem Fall rufen wir ihn auf und wählen ihn aus .

Dann müssen wir vom Terminal aus die Dateien der Webstruktur installieren, damit wir Folgendes ausführen:

 sudo php init 

Sie werden uns fragen, ob wir es im Entwicklungs- oder Produktionsmodus ausführen möchten, wir werden Entwicklung auswählen und dann bestätigen, damit die gesamte Struktur standardmäßig kopiert wird.

yii-2.jpg

Wenn wir zum Webordner yiidemo gehen, werden wir sehen, dass mehrere Ordner installiert wurden und die beiden, die die Dateien des Web-Backends für den Administrator und des Frontends für das öffentliche Web enthalten.

Wir können in einem Browser das Backend von der URL sehen:

http: // localhost / yiidemo / backend / web /

yii-3.jpg

Wir können auch die Vorlage des Hauses sehen:

http: // localhost / yiidemo / frontend / web /

yii-4.jpg
Wie wir sehen können, hat es einige Beispielseiten, aber die Anmeldung oder die Benutzerregistry sind nicht funktionsfähig, da sie keine Verbindung zu einer Datenbank herstellen, aber sie dienen als Code-Basis, abgesehen davon, dass das Design anspricht.

Als nächstes erstellen wir die Datenbank aus phpmyadmin, die wir yiidemodb nennen.

Die Tabelle für den Administrator hat die folgende Struktur

 - Tabellenstruktur für die 'Administrator'-Tabelle - TABELLE ERSTELLEN, WENN NICHT "Administrator" EXISTIERT ( `id` tinyint (3) NICHT NULL, `user` varchar (50) DEFAULT NULL, `key` varchar (50) DEFAULT NULL, `email` varchar (100) STANDARD NULL ) ENGINE = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Data Dump für die 'Administrator'-Tabelle - INSERT IN `administrator` (` id`, `user`,` key`, `email`) VALUES (1, "admin", "admin", "[email protected]"); Als nächstes müssen wir konfigurieren, um die Datenbank mit Yii zu verbinden. Gehen Sie also zum Ordner / common / config und öffnen Sie die Datei main_local.php. Hier sind die allgemeinen Konfigurationen für das Backend und das Frontend <? zurück [ 'class' => 'yii  db  Connection', 'dsn' => 'mysql: host = localhost; dbname = yiidemodb', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ]; ?> 

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

yii-5.jpg

Nachdem Sie festgelegt 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 die Code-E-Ansicht, den Controller und die Minimalfunktionen für die Interaktion mit der Tabelle zu erstellen. CRUD ist die Abkürzung für Erstellen, Beziehen, Aktualisieren und Löschen.

yii-6.jpg

Im Crud müssen wir die Routen des erstellten Modells und des Controllers definieren. Außerdem können wir ein Modell für die Suche hinzufügen.

Modellklasse: Backend Models Administrator
Modellklasse durchsuchen: Backend models Administrator AdministratorFind
Controllerklasse: Backend Controller AdministradorController

Dann drücken wir Preview und Generate

Dann können wir den Rohstoff versuchen, den wir aus der folgenden URL generieren
http: //localhost/yii…r=administrator

yii-7.jpg

Als nächstes gehen wir zum backend config Ordner und öffnen die main.php Datei, wo wir die folgende Codezeile ändern werden:

 'identityClass' => 'common  models  User' 

Wir ändern durch unser Administratormodell

 'identityClass' => Backend  models  Administrator 

Wir geben an, dass wir für die Anmeldung im Backend das Administrator-Modell verwenden, das sich auf der angegebenen Route befindet.

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 das Login, das für das Backend und das Frontend in der üblichen Form vorliegt.

Der Controller, der die Anmeldung aufruft, ist SiteController.php.php. Wir öffnen die Datei und ändern die Zeile:

 verwende common  models  LoginForm; 

Auf der Linie:

 benutze Backend  models  LoginForm; 

Auf diese Weise sucht das Formular beim Senden nach LoginForm.php im Verzeichnis backend models Administrator, wie oben definiert.

Als nächstes müssen wir das LoginForm ändern, um es auf folgende Weise an das Administratormodell anzupassen:

 <? php Namespace-Backend  models; benutze Yii; benutze yii  base  Model; Klasse LoginForm erweitert Model { // Formularfelder anzeigen public $ username; öffentliches $ Passwort; public $ rememberMe = true; private $ _user; Regeln für öffentliche Funktionen () { zurück [ // Datenregeln sind beide erforderlich [['Benutzername', 'Passwort'], 'Erforderlich'], // denk dran, es wird Boolean 0 oder 1 sein ['rememberMe', 'boolean'], // kennwörter werden von der validatePassword () - Funktion überprüft ['password', 'validatePassword'], ]; } // Funktion zum Überprüfen des Schlüssels öffentliche Funktion validatePassword ($ attribute, $ params) { $ user = $ this-> getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) { $ this-> addError ($ attribute, 'Falscher Benutzername oder Passwort.'); } } public function login () { if ($ this-> validate ()) { Echo "Hallo"; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else { return false; } } // Funktion, nach der ein Benutzer anhand seines Benutzernamens sucht geschützte Funktion getUser () { if ($ this -> _ user === null) { // Wenn es existiert, bekommt es ein Array mit allen Daten $ this -> _ user = Administrator :: findByUsername ($ this-> username); } return $ this -> _ user; } } ?> 

Als Nächstes ändern wir das generierte Administratormodell und fügen IdentityInterface hinzu, eine Klasse, die mehrere erweiterte Sicherheitsfunktionen für die Zugriffssteuerung bietet. In diesem Fall ist unser Beispiel einfach, aber wir müssen sie implementieren, auch wenn wir sie nicht verwenden.

 <? php Namespace-Backend  models; benutze Yii; Klassenadministrator erweitert  yii  db  ActiveRecord implementiert  yii  web  IdentityInterface { // zu verwendende Tabelle generiert öffentliche statische Funktion tableName () { "Administrator" zurückgeben; } // Feldregeln Regeln für öffentliche Funktionen () { zurück [ [['user', 'key'], 'string', 'max' => 50], [['email'], 'string', 'max' => 100] ]; } // Felder in der Tabelle public function attributeLabels () { zurück [ 'id' => 'ID', 'user' => 'User', 'key' => 'Password', 'email' => 'Email', ]; } // Vordefinierte Funktion in IdentityInterface, um Benutzer nach Namen zu suchen öffentliche statische Funktion findByUsername ($ username) { return static :: findOne (['user' => $ username]); } / vordefinierte Funktion in IdentityInterface zum Suchen von Schlüsseln öffentliche Funktion validatePassword ($ password) { return static :: findOne (['password' => $ password]); } // Vordefinierte Funktion in IdentityInterface zur Suche nach Benutzern anhand der ID öffentliche statische Funktion findIdentity ($ id) { return static :: findOne ($ id); } // vordefinierte Funktion in IdentityInterface, um Benutzer nach Lesezeichen oder Signal zu suchen öffentliche statische Funktion findIdentityByAccessToken ($ token, $ type = null) { // return static :: findOne (['access_token' => $ token]); } // Die Benutzer-ID zurückgeben public function getId () { return $ this-> id; } // Gibt einen Schlüssel zurück, mit dem die Gültigkeit einer ID überprüft werden kann öffentliche Funktion getAuthKey () { // $ this-> auth_key zurückgeben; } // Den von der vorherigen Funktion zurückgegebenen Schlüssel validieren. öffentliche Funktion validateAuthKey ($ authKey) { // $ this-> getAuthKey () === $ authKey zurückgeben; } } 

Als nächstes müssen wir das Design im Backend view layout ändern, die Datei main.php öffnen
Wir suchen nach den Codezeilen:

 // Ändern Sie den Namen der My Company-Website NavBar :: begin ([ 'brandLabel' => 'Meine Firma', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => [ 'class' => 'navbar-inverse navbar-fixed-top', ], ]); 'brandLabel' => 'Meine Firma', Wir verändern uns durch 'brandLabel' => 'Meine Demo Yii', // Wenn ich eingeloggt bin, zeige ich den Link Login if (Yii :: $ app-> user-> isGuest) { $ menuItems [] = ['label' => 'Login', 'url' => ['/ site / login']]; } else { // Aber ich bin lohueago, ich werde andere Links im Menü anzeigen $ menuItems [] = [ 'label' => 'Logout (' .Yii :: $ app-> Benutzer-> Identität-> Benutzername. ')', 'url' => ['/ site / logout'], 'linkOptions' => ['data-method' => 'post'] ]; } 

Hier wechseln wir den Benutzer

 'label' => 'Logout (' .Yii :: $ app-> Benutzer-> Identität-> Benutzername. ')', 

Wir ändern unser Benutzerfeld

 'label' => 'Logout (' .Yii :: $ app-> user-> identity-> user. ')', 

Endlich können wir uns einloggen:
http: //localhost/pro…mo/backend/web/

  • Benutzer admin
  • Passwort admin

yii-8.jpg

Die Hauptseite wird von backend views site geändert.

In einem weiteren Tutorial erfahren Sie, wie Sie das Design der Hauptseite ändern, Menüs erstellen, Seiten verknüpfen und Funktionen hinzufügen. Seien Sie aufmerksam und folgen Sie mir, wenn Sie interessiert sind.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *