Neke značajke u usporedbi s drugim okvirima
Upotrijebite uzorak MVC (model / prikaz / kontroler)Za razliku od drugih okvira, svaka komponenta odvaja u mape radi boljeg redoslijeda i održavanja.
- Generiranje koda: Yii može generirati CRUD kôd iz tablice baze podataka, stvarajući upite, popise i obrasce.
- Integrirana podrška za jQuery i Bootstrap
- Ugrađene metode kontrole pristupa provjere autentičnosti i autorizacije uloga
- Sadrži sigurnosni sustav i sustav za sprječavanje napada izvan weba.
- Podržava widgete i proširenja koja je razvila zajednica
- Podržava korištenje predložaka dizajna
Instalacija Yii Framework -a
Postoje dvije verzije Yii, jedna osnovna i jedna napredna. U osnovnoj verziji korisničke datoteke i administratorske datoteke su zajedno, u naprednoj verziji odvojene su u dvije mape kao neovisni sustavi Frontend Y Pozadina
Da bismo instalirali Yii 2.0, moramo preuzeti datoteke s web stranice Yii Framework 2.0 sa sljedećeg urla Yii 2.0 Basic i Yii 2.0 Advanced.
Nakon preuzimanja raspakiramo datoteku i kopiramo naprednu mapu na naš lokalni poslužitelj te je preimenujemo u naziv našeg web projekta, u ovom slučaju to nazivamo yiidemo.
Zatim s terminala moramo instalirati datoteke strukture weba za to izvršavamo sljedeće:
sudo php initPitat će nas želimo li ga pokrenuti u načinu razvoja ili proizvodnje, odabrat ćemo razvoj i zatim potvrditi, pa će se kopirati sva potrebna zadana struktura.
Ako odemo na web mapu yiidemo, vidjet ćemo da je instalirano nekoliko mapa i dvije koje će sadržavati pozadinske web datoteke za administratora i sučelje za javni web.
Backend možemo vidjeti u pregledniku s URL -a:
http: // localhost / yiidemo / backend / web /
Također možemo vidjeti predložak doma:
http: // localhost / yiidemo / frontend / web /
POVEĆAJTE
Kao što vidimo, ima neke uzorke stranica, ali prijava ili registracija korisnika nisu funkcionalni jer se ne povezuju ni s jednom bazom podataka, ali služe kao baza koda za početak, također dizajn odgovara.Zatim ćemo stvoriti bazu podataka od phpmyadmina kojoj ćemo dati ime yiidemodb.
Tablica za administratora imat će sljedeću strukturu
- Struktura tablice za tablicu `administrator` - CREATE TABLE IF NOT EXSTS` administrator` (` id` tinyint (3) NOT NULL, `user` varchar (50) DEFAULT NULL,` key` varchar (50) DEFAULT NULL, `email `varchar (100) ZADANO NULL) MOTOR = MyISAM AUTO_INCREMENT = 2 ZADNJA KARTA = latin1; - - Izbaci podatke za tablicu `administrator` - INSERT INTO` administrator` (` id`, `user`,` password`, `email`) VRIJEDNOSTI (1, 'admin', 'admin', '[email protected] '); Zatim ćemo morati konfigurirati povezivanje baze podataka s Yii. Za to idemo u / common / config mapu i otvorimo datoteku main_local.php, ovdje će biti uobičajene konfiguracije za pozadinu i sučelje 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 ->Zatim ćemo morati stvoriti model, kontroler i pogled administratora, za to ćemo koristiti URL: http: // localhost / yii … index.php? R = gii
Nakon što definirate tablicu koju želimo generirati model, kliknite gumb Preview kako biste vidjeli kako bi datoteka izgledala, a zatim Generirajte za generiranje koda.
Zatim idemo na Crud generator za kreiranje koda i prikaza, kontrolera i minimalnih funkcionalnosti za interakciju s tablicom. CRUD je kratica za Stvaranje, dobivanje, ažuriranje i brisanje.
U Crudu ćemo morati definirati rute modela i kontroler koji će se stvoriti, možemo dodati i model za pretraživanja.
Klasa modela: backend \ models \ Administrator
Klasa modela pretraživanja: backend \ models \ Administrator \ Administrator Search
Klasa kontrolera: backend \ controllers \ AdministratorController
Zatim pritisnemo Pregled i Generiraj
Zatim možemo testirati sirovinu koju generiramo sa sljedećeg URL -a
http: // localhost / yii … r = administrator
Zatim idemo u mapu \ backend \ config i otvaramo datoteku main.php, gdje ćemo izmijeniti sljedeći redak koda:
'identityClass' => 'uobičajeni \ modeli \ korisnik'Mijenjamo se za model administratora
'identityClass' => pozadina \ modeli \ AdministratorUkazujemo da ćemo za prijavu na pozadinu koristiti model administratora koji se nalazi na navedenoj putanji.
Zatim idemo u zajedničku mapu \ models i kopiramo datoteku LoginForm.php u mapu backend \ models, na ovaj način odvajamo prijavu koja je u zajedničkom obliku za pozadinu i sučelje.
Kontroler koji poziva prijavu je SiteController.php.php, moramo otvoriti datoteku i izmijeniti redak:
koristiti zajedničke \ models \ LoginForm;Na liniji:
koristiti pozadinu \ models \ LoginForm;Na taj će način prilikom slanja obrasca tražiti LoginForm.php u backend \ models \ Administrator kako smo gore definirali.
Zatim moramo izmijeniti obrazac za prijavu kako bismo ga prilagodili modelu administratora na sljedeći način:
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attribute, 'Neispravno korisničko ime ili lozinka.'); }} javna funkcija login () {if ($ this-> validate ()) {echo 'hello'; vratiti Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else {return false; }} // funkcija koja traži korisnika prema njegovoj funkciji zaštićenoj korisničkim imenom getUser () {if ($ this -> _ user === null) {// ako postoji, dobiva niz sa svim podacima $ this -> _ user = Administrator :: findByUsername ($ this-> korisničko ime); } vrati $ this -> _ user; }}?> var13 ->Zatim izmijenimo generirani model administratora i dodat ćemo IdentityInterface koja je klasa koja pruža različite napredne sigurnosne značajke za kontrolu pristupa. U ovom slučaju naš je primjer jednostavan, ali moramo ih implementirati čak i ako ih ne koristimo.
50], [['email'], 'string', 'max' => 100]]; } // Polja tablice javna funkcija attributeLabels () {return ['id' => 'ID', 'user' => 'Korisnik', 'lozinka' => 'Zaporka', 'email' => 'E -pošta',]; } // unaprijed definirana funkcija u IdentityInterface za pronalaženje korisnika po imenu javna statička funkcija findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / predefinirana funkcija u IdentityInterface za traženje ključne javne funkcije validatePassword ($ lozinka) {return static :: findOne (['key' => $ password]); } // unaprijed definirana funkcija u IdentityInterface za pronalaženje korisnika po id -u javna statička funkcija findIdentity ($ id) {return static :: findOne ($ id); } // unaprijed definirana funkcija u IdentityInterface za pretraživanje korisnika po oznaci ili tokenu javna statička funkcija findIdentityByAccessToken ($ token, $ type = null) {// vrati static :: findOne (['access_token' => $ token]); } // Vraća javnu funkciju korisničkog ID-a getId () {return $ this-> id; } // Vraća ključ koji se može koristiti za provjeru valjanosti javne javne funkcije ID getAuthKey () {// vraća $ this-> auth_key; } // Potvrdi ključ vraćen prethodnom funkcijom. javna funkcija validateAuthKey ($ authKey) {// vrati $ this-> getAuthKey () === $ authKey; }}Zatim moramo promijeniti izgled u pozadini \ view \ layout, otvorimo datoteku main.php
Tražimo redove koda:
// Mijenjamo naziv weba Moja tvrtka NavBar :: begin (['brandLabel' => 'Moja tvrtka', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top',],]); 'brandLabel' => 'Moja tvrtka', mijenjamo se u 'brandLabel' => 'Moja Yii demonstracija', // Ako sam prijavljen, prikazujem vezu Prijava ako (Yii :: $ app-> korisnik-> isGuest) {$ menuItems [] = ['label' => 'Prijava', 'url' => [' / site / login']]; } else {// Ako nisam, prikazat ću ostale veze u izborniku $ menuItems [] = ['label' => 'Odjava ('. Yii :: $ app-> user-> identitet-> korisničko ime. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; }Ovdje mijenjamo korisnika
'label' => 'Odjava ('. Yii :: $ app-> user-> identity-> username. ')',Mijenjamo se za naše polje korisnika
'label' => 'Odjava ('. Yii :: $ app-> user-> identity-> user. ')',Konačno se možemo prijaviti:
http: // localhost / pro… mo / backend / web /
- Korisnik admin
- Ključ admin
POVEĆAJTE
Glavna stranica je izmijenjena iz \ backend \ views \ site.U drugom vodiču ćemo vidjeti kako promijeniti dizajn glavne stranice, stvoriti izbornike, povezati stranice i dodati funkcionalnosti. Budite pažljivi i pratite me ako vas zanima.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod