„Yii Framework 2.0“ - žiniatinklio programų kūrimas

„Yii“ yra pagrindas parašyta php, kad verslo žiniatinklio programos būtų kuriamos judriau ir standartiškiau. Jo architektūra, pagrįsta komponentais, yra labai tinkama kuriant programas, kurios turi palaikyti daug srauto ir kurioms reikalingi standartiniai ir gerai dokumentuoti kūrimo metodai; ši sistema naudojama bet kuriai žiniatinklio programai, pavyzdžiui, portalams, verslo valdymo sistemoms, turinio valdymui sistemos (TVS), elektroninės prekybos svetainės.

Kai kurios funkcijos, palyginti su kitomis sistemomis


Naudokite modelį MVC (modelis / vaizdas / valdiklis)Skirtingai nuo kitų sistemų, jis atskiria kiekvieną komponentą į aplankus, kad būtų užtikrinta geresnė tvarka ir priežiūra.
  • Kodo generavimas: „Yii“ gali generuoti CRUD kodą iš duomenų bazės lentelės, sukurdamas užklausas, sąrašus ir formas.
  • Integruotas „jQuery“ ir „Bootstrap“ sistemos palaikymas
  • Įmontuoti vaidmenų autentifikavimo ir leidimo prieigos kontrolės metodai
  • Jame yra saugumo ir atakų prevencijos sistema, esanti ne žiniatinklyje.
  • Palaiko bendruomenės sukurtus valdiklius ir plėtinius
  • Palaiko dizaino šablonų naudojimą

„Yii Framework“ diegimas


Yra dvi „Yii“ versijos, viena „Basic“ ir viena „Advanced“. Pagrindinė versija yra vartotojo failai ir administratoriaus failai, o išplėstinėje versijoje jie yra atskirti į du aplankus kaip nepriklausomos sistemos Sąsaja Y „Backend“
Norėdami įdiegti „Yii 2.0“, turime atsisiųsti failus iš „Yii Framework 2.0“ svetainės iš šių URL „Yii 2.0 Basic“ ir „Yii 2.0 Advanced“.
Atsisiuntę išpakuojame failą ir nukopijuojame išplėstinį aplanką į vietinį serverį ir pervadiname jį savo interneto projekto pavadinimu, šiuo atveju mes jį vadiname yiidemo.
Tada iš terminalo turime įdiegti žiniatinklio struktūros failus, kad atliktume šiuos veiksmus:
 sudo php init
Jis paklaus mūsų, ar norime jį paleisti kūrimo ar gamybos režimu, mes pasirinksime kūrimą ir tada patvirtinsime, todėl bus nukopijuota visa reikalinga numatytoji struktūra.

Jei eisime į „yiidemo“ žiniatinklio aplanką, pamatysime, kad buvo įdiegti keli aplankai ir du, kuriuose bus administratoriaus ir viešojo žiniatinklio užpakalinės svetainės failai.
„Backend“ galime pamatyti naršyklėje iš URL:
http: // localhost / yiidemo / backend / web /

Taip pat galime pamatyti namų šabloną:
http: // localhost / yiidemo / frontend / web /

DIDELIS

Kaip matome, jame yra keletas puslapių pavyzdžių, tačiau prisijungimas ar vartotojo registracija neveikia, nes jie neprisijungia prie jokios duomenų bazės, tačiau iš pradžių jie yra kodo bazė, o dizainas taip pat reaguoja.
Tada sukursime duomenų bazę iš „phpmyadmin“, kurią pavadinsime „yiidemodb“.
Lentelė administratoriui bus tokia
 - Lentelės „administratoriui“ lentelės struktūra - KURTI LENTELĘ, KAD NĖRA „administratorius“ („id“ tinyint (3) NOT NULL, „user“ varchar (50) DEFAULT NULL, „key“ varchar (50) DEFAULT NULL, `el. `varchar (100) Numatytasis NULL) VARIKLIS = MyISAM AUTO_INCREMENT = 2 Numatytasis CHARSET = latin1; - - Išmesti lentelės „administratorius“ duomenis - INSERT INTO „administratorius“ („id“, „naudotojas“, „slaptažodis“, „el. Paštas“) VERTĖS (1, „admin“, „admin“, „[email protected]“ '); Toliau turėsime sukonfigūruoti susieti duomenų bazę su „Yii“, todėl einame į aplanką / common / config ir atidarome failą main_local.php, čia bus bendros konfigūracijos tiek užpakalinei, tiek priekinei „yii \ db \ Connection“ ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 -> 
Toliau turėsime sukurti modelį, valdiklį ir administratoriaus vaizdą, tam naudosime URL: http: // localhost / yii… index.php? R = gii

Apibrėžę, kurią lentelę norime sugeneruoti, spustelėkite mygtuką Peržiūra, kad pamatytumėte, kaip atrodys failas, ir tada sugeneruokite, kad sukurtumėte kodą.
Toliau einame į „Crud“ generatorių, kad sukurtume kodą ir rodinį, valdiklį ir minimalias funkcijas, kad galėtume sąveikauti su lentele. CRUD yra santrumpa „Sukurti, gauti, atnaujinti ir ištrinti“.

„Crud“ turėsime apibrėžti modelio ir valdiklio, kurie bus sukurti, maršrutus, taip pat galime pridėti paieškos modelį.
Modelio klasė: backend \ models \ Administrator
Paieškos modelio klasė: backend \ models \ Administrator \ Administrator Search
Valdiklio klasė: backend \ kontrolleriai \ AdministratorController
Tada paspaudžiame „Preview“ ir „Generate“
Tada galime išbandyti „crud“, kurį sukuriame iš šio URL
http: // localhost / yii… r = administratorius

Toliau einame į aplanką \ backend \ config ir atidarome failą main.php, kuriame pakeisime šią kodo eilutę:
 'IdentityClass' => 'Įprastas \ modelių \ Vartotojas'
Mes keičiame savo administratoriaus modelį
 'IdentityClass' => backend \ models \ Administrator
Nurodome, kad prisijungdami prie vidinės sistemos naudosime nurodytame kelyje rastą administratoriaus modelį.
Toliau einame į bendrąjį aplanką \ models ir nukopijuojame failą LoginForm.php aplanke backend \ models, tokiu būdu atskiriame prisijungimo formą, kuri yra įprasta vidinei ir priekinei sistemai.
Valdiklis, kuris iškviečia prisijungimą, yra „SiteController.php.php“, turime atidaryti failą ir pakeisti eilutę:
 naudoti bendrus \ modeliai \ LoginForm; 
Pagal eilutę:
 naudokite „backend \ models \ LoginForm“;
Tokiu būdu, kai forma bus išsiųsta, ji ieškos „LoginForm.php“ backend \ models \ Administrator kaip mes apibrėžėme aukščiau.
Toliau turime modifikuoti „LoginForm“, kad jis būtų pritaikytas administratoriaus modeliui taip:
 getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ atributas, 'Neteisingas naudotojo vardas arba slaptažodis.'); }} viešosios funkcijos prisijungimas () {if ($ this-> validate ()) {echo 'hello'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> RememberMe? 3600 * 24 * 30: 0); } else {return false; }} // funkcija, kuri ieško vartotojo pagal jo vartotojo vardu apsaugotą funkciją getUser () {if ($ this -> _ user === null) {// jei ji egzistuoja, ji gauna masyvą su visais duomenimis $ this -> _ vartotojas = administratorius :: findByUsername ($ this-> vartotojo vardas); } grąžinti $ this -> _ user; }}?> var13 -> 
Tada pakeisime sukurtą administratoriaus modelį ir pridėsime IdentityInterface tai klasė, teikianti įvairias pažangias prieigos kontrolės apsaugos funkcijas. Šiuo atveju mūsų pavyzdys yra paprastas, tačiau turime juos įgyvendinti, net jei jų nenaudojame.
 50], [['email'], 'string', 'max' => 100]]; } // Lentelės laukai public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email',]; } // iš anksto nustatyta funkcija IdentityInterface, kad surastų vartotoją pagal vardą public static function findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / iš anksto nustatyta funkcija IdentityInterface, kad būtų galima ieškoti pagrindinės viešosios funkcijos validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // iš anksto nustatyta funkcija IdentityInterface, kad surastų vartotoją pagal id public static function findIdentity ($ id) {return static :: findOne ($ id); } // iš anksto nustatyta funkcija IdentityInterface, kad ieškotų vartotojo pagal žymeklį arba žetoną vieša statinė funkcija findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Grąžina vartotojo ID viešąją funkciją getId () {return $ this-> id; } // Grąžina raktą, kuriuo galima patikrinti ID viešosios funkcijos galiojimą getAuthKey () {// return $ this-> auth_key; } // Patvirtinkite ankstesnės funkcijos grąžintą raktą. viešoji funkcija validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }} 
Toliau turime pakeisti išdėstymą backend \ view \ layout, atidarome failą main.php
Mes ieškome kodo eilučių:
 // Keičiame žiniatinklio pavadinimą Mano įmonė NavBar :: begin (['brandLabel' => 'Mano įmonė', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-inversinė navbar-fix-top',],]); 'brandLabel' => 'Mano kompanija', pakeičiame į 'brandLabel' => 'My Yii Demo', // Jei esu prisijungęs, rodau nuorodą Prisijungti, jei (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Prisijungimas', 'url' => [' / site / login']]; } else {// Jei nesu, meniu $ menuItems [] = ['label' => 'Atsijungti ('. Yii :: $ app-> user-> identity-> username) parodysiu kitas nuorodas. ' ) ", 'url' => [' / site / logout'], 'linkOptions' => ['data-method' => 'post']]; } 
Čia mes keičiame vartotoją
 'label' => 'Atsijungti ('. Yii :: $ app-> user-> identity-> username. ')',
Mes keičiamės pagal savo vartotojo sritį
 'label' => 'Atsijungti ('. Yii :: $ app-> user-> identity-> user. ')',
Pagaliau galime prisijungti:
http: // localhost / pro… mo / backend / web /
  • Vartotojas admin
  • Raktas admin

DIDELIS

Pagrindinis puslapis pakeistas iš \ backend \ views \ svetainė.
Kitoje pamokoje pamatysime, kaip pakeisti pagrindinio puslapio dizainą, sukurti meniu, susieti puslapius ir pridėti funkcijų. Būkite atidūs ir sekite mane, jei jus domina.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave