Yii Framework 2.0 - Sviluppo di applicazioni web

Yii è un quadro scritto in php per rendere più agile e standard lo sviluppo di applicazioni web aziendali. La sua architettura basata su componenti, è molto adatta allo sviluppo di applicazioni che devono supportare molto traffico, che richiedono metodi di sviluppo standard e ben documentati, questo framework è utilizzato per qualsiasi applicazione web come portali, sistemi di gestione aziendale, gestione dei contenuti sistemi (CMS), siti di e-commerce.

Alcune funzionalità rispetto ad altri framework


Usa il modello MVC (modello / vista / controller)A differenza di altri framework, separa ogni componente in cartelle per un migliore ordine e manutenzione.
  • Generazione di codice: Yii può generare codice CRUD da una tabella di database, creando query, elenchi e moduli.
  • Supporto del framework jQuery e Bootstrap integrato
  • Metodi di controllo degli accessi integrati per l'autenticazione e l'autorizzazione dei ruoli
  • Incorpora un sistema di sicurezza e prevenzione degli attacchi esterno al web.
  • Supporta widget ed estensioni sviluppate dalla community
  • Supporta l'uso di modelli di design

Installazione del framework Yii


Esistono due versioni di Yii, una di base e una avanzata. Nella versione base i file utente e i file amministratore sono insieme, nella versione avanzata sono separati in due cartelle come sistemi indipendenti Fine frontaleBackend
Per installare Yii 2.0, dobbiamo scaricare i file dal sito web Yii Framework 2.0 dai seguenti url Yii 2.0 Basic e Yii 2.0 Advanced.
Una volta scaricato decomprimiamo il file e copiamo la cartella advanced sul nostro server locale e la rinominiamo con il nome del nostro progetto web, in questo caso lo chiamiamo yiidemo.
Successivamente, dal terminale, dobbiamo installare i file della struttura del web per questo eseguiamo quanto segue:
 sudo php init
Ci chiederà se vogliamo eseguirlo in modalità Sviluppo o Produzione, sceglieremo Sviluppo e poi confermeremo, così verrà copiata tutta la struttura predefinita necessaria.

Se andiamo nella cartella web yiidemo, vedremo che sono state installate diverse cartelle e le due che conterranno i file web di backend per l'amministratore e frontend per il web pubblico.
Possiamo vedere il backend in un browser dall'URL:
http: // localhost / yiidemo / backend / web /

Possiamo anche vedere il modello di casa:
http: // localhost / yiidemo / frontend / web /

INGRANDIRE

Come possiamo vedere, ha alcune pagine di esempio ma il login o la registrazione dell'utente non sono funzionali poiché non si connettono ad alcun database, ma servono come base di codice per cominciare, inoltre il design è reattivo.
Successivamente creeremo il database da phpmyadmin che chiameremo yiidemodb.
La tabella per l'amministratore avrà la seguente struttura
 - Struttura della tabella per la tabella `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; - - Scarica i dati per la tabella `administrator` - INSERT INTO` administrator` (`id`,` user`, `password`,` email`) VALUES (1, 'admin', 'admin', ' [email protected] '); Successivamente dovremo configurare per collegare il database con Yii per questo andiamo nella cartella /common/config e apriamo il file main_local.php, qui ci saranno le configurazioni comuni sia per il backend che per il frontend 'yii \ db \ Connection ', 'dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 -> 
Successivamente dovremo creare il modello, il controller e la vista dell'amministratore, per questo utilizzeremo l'URL: http: // localhost / yii… index.php? R = gii

Dopo aver definito quale tabella vogliamo generare il modello, fare clic sul pulsante Anteprima per vedere come apparirebbe il file e quindi su Genera per generare il codice.
Successivamente andiamo al generatore Crud per creare il codice e visualizzare, controller e funzionalità minime per interagire con la tabella. CRUD è l'acronimo di Crea, Ottieni, Aggiorna ed Elimina.

Nel crud dovremo definire i percorsi del modello e il controller che verrà creato, possiamo anche aggiungere un modello per le ricerche.
Classe modello: backend \ modelli \ amministratore
Cerca classe modello: backend\modelli\amministratore\ricerca amministratore
Classe di controllore: backend \ controllers \ AdministratorController
Quindi premiamo Anteprima e Genera
Quindi possiamo testare il crud che generiamo dal seguente url
http: // localhost / yii… r = amministratore

Successivamente andiamo nella cartella \ backend \ config e apriamo il file main.php, dove modificheremo la seguente riga di codice:
 'identityClass' => 'comune \ modelli \ Utente'
Cambiamo per il nostro modello di amministratore
 'identityClass' => backend \ modelli \ amministratore
Indichiamo che per accedere al backend utilizzeremo il modello Administrator trovato nel percorso specificato.
Successivamente andiamo nella cartella common\models e copiamo il file LoginForm.php nella cartella backend\models, in questo modo separiamo il login che è in forma comune per il backend e il frontend.
Il controller che invoca il login è SiteController.php.php, dobbiamo aprire il file e modificare la riga:
 usa i comuni \ modelli \ LoginForm; 
In linea:
 usa backend \ modelli \ LoginForm;
In questo modo, quando il modulo viene inviato, cercherà LoginForm.php in backend \ modelli \ amministratore come abbiamo definito sopra.
Successivamente dobbiamo modificare il LoginForm per adattarlo al modello amministratore come segue:
 getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attributo, 'Nome utente o password errati.'); }} funzione pubblica login () {if ($ this-> validate ()) {echo 'ciao'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> RememberMe? 3600 * 24 * 30: 0); } else {restituire falso; }} // funzione che cerca un utente tramite il suo nome utente funzione protetta getUser () {if ($ this -> _ user === null) {// se esiste ottiene un array con tutti i dati $ this -> _ user = Administrator :: findByUsername ($ this-> username); } restituisce $ questo -> _ utente; }}?> var13 -> 
Successivamente modifichiamo il modello Administrator generato e aggiungeremo IdentitàInterfaccia che è una classe che fornisce varie funzionalità di sicurezza avanzate per il controllo degli accessi. In questo caso il nostro esempio è semplice ma dobbiamo averli implementati anche se non li usiamo.
 50], [['email'], 'string', 'max' => 100]]; } // Campi della tabella public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email' ,]; } // funzione predefinita in IdentityInterface per trovare l'utente per nome public static function findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / funzione predefinita in IdentityInterface per cercare la chiave pubblica funzione validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // funzione predefinita in IdentityInterface per trovare l'utente in base all'id public static function findIdentity ($ id) {return static :: findOne ($ id); } // funzione predefinita in IdentityInterface per cercare l'utente per marker o token public static function findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Restituisce l'ID utente public function getId() {return $ this-> id; } // Restituisce una chiave che può essere utilizzata per verificare la validità di un ID public function getAuthKey() {// return $ this-> auth_key; } // Convalida la chiave restituita dalla funzione precedente. public function validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }} 
Quindi dobbiamo cambiare il layout in backend \ view \ layout, apriamo il file main.php
Cerchiamo le righe di codice:
 // Modifichiamo il nome del web My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' = > 'navbar-inverse navbar-fixed-top',],]); 'brandLabel' => 'My Company', cambiamo in 'brandLabel' => 'My Yii Demo', // Se ho effettuato l'accesso mostro il link Login if (Yii :: $ app-> user-> isGuest) {$ menuItems [ ] = ['label' => 'Login', 'url' => ['/sito/login']]; } else {// Se non lo sono, mostrerò altri collegamenti nel menu $ menuItems [] = ['label' => 'Logout ('. Yii :: $ app-> user-> identity-> username. ' )', ' url '=> [' / site / logout '],' linkOptions' => ['data-method' => 'post']]; } 
Qui cambiamo utente
 'label' => 'Esci ('. Yii :: $ app-> utente-> identità-> nome utente. ')',
Cambiamo per il nostro campo utente
 'label' => 'Esci ('. Yii :: $ app-> utente-> identità-> utente. ')',
Finalmente possiamo accedere:
http: // localhost / pro… mo / backend / web /
  • Utente amministratore
  • Chiave amministratore

INGRANDIRE

La pagina principale è modificata da \ backend \ viste \ sito.
In un altro tutorial vedremo come modificare il design della pagina principale, creare menu, collegare pagine e aggiungere funzionalità. Stai attento e seguimi se sei interessato.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave