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.
Backend možemo vidjeti u pregledniku s URL -a:
http: // localhost / yiidemo / backend / web /
http: // localhost / yiidemo / frontend / web /
POVEĆAJTE
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
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.
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
'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
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