Některé funkce ve srovnání s jinými rámci
Použijte vzor MVC (model / zobrazení / ovladač)Na rozdíl od jiných rámců odděluje každou součást do složek pro lepší pořádek a údržbu.
- Generování kódu: Yii může generovat kód CRUD z databázové tabulky a vytvářet dotazy, seznamy a formuláře.
- Integrovaná podpora rámců jQuery a Bootstrap
- Integrované metody řízení přístupu pro ověřování a autorizaci rolí
- Obsahuje bezpečnostní systém a systém prevence útoků mimo web.
- Podporuje widgety a rozšíření vyvinutá komunitou
- Podporuje použití šablon návrhů
Instalace Yii Framework
Existují dvě verze Yii, jedna Basic a jedna Advanced. Základní verze uživatelské soubory a soubory správce jsou pohromadě, v pokročilé verzi jsou rozděleny do dvou složek jako nezávislé systémy Frontend Y Backend
K instalaci Yii 2.0 musíme stáhnout soubory z webu Yii Framework 2.0 z následující adresy URL Yii 2.0 Basic a Yii 2.0 Advanced.
Po stažení soubor rozbalíme a zkopírujeme rozšířenou složku na náš místní server a přejmenujeme ji na název našeho webového projektu, v tomto případě tomu říkáme yiidemo.
Dále z terminálu musíme nainstalovat soubory struktury webu, abychom provedli následující:
sudo php initZeptá se nás, zda ho chceme spustit v režimu Vývoj nebo Produkce, vybereme Vývoj a poté potvrdíme, takže se zkopíruje veškerá nezbytná výchozí struktura.
Backend vidíme v prohlížeči z adresy URL:
http: // localhost / yiidemo / backend / web /
http: // localhost / yiidemo / frontend / web /
ZVĚTŠIT
Dále vytvoříme databázi z phpmyadmin, kterou pojmenujeme yiidemodb.
Tabulka pro správce bude mít následující strukturu
- Struktura tabulky pro tabulku `správce` - VYTVOŘIT TABULKU, NEBYLI EXISTUJE` správce` (` id` tinyint (3) NOT NULL, `user` varchar (50) DEFAULT NULL,` key` varchar (50) DEFAULT NULL, `email `varchar (100) DEFAULT NULL) MOTOR = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Data výpisu pro tabulku `správce` - VLOŽTE DO` administrátora` (` id`, `uživatel`,` heslo`, `email`) HODNOTY (1, 'admin', 'admin', '[email protected] '); Dále budeme muset nakonfigurovat propojení databáze s Yii. Přejdeme do složky / common / config a otevřeme soubor main_local.php, zde budou běžné konfigurace pro backend i frontend 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' heslo '=>' ',' charset '=>' utf8 ',]; ?> var13 ->Dále budeme muset vytvořit model, ovladač a pohled administrátora, k tomu použijeme URL: http: // localhost / yii… index.php? R = gii
Dále přejdeme k generátoru Crud, abychom vytvořili kód a zobrazení, řadič a minimální funkce pro interakci s tabulkou. CRUD je zkratka pro Create, Get, Update a Delete.
Modelová třída: backend \ models \ Administrator
Hledat modelovou třídu: backend \ models \ Administrator \ Administrator Search
Třída ovladače: backend \ controllers \ AdministratorController
Poté stiskneme Náhled a Generovat
Poté můžeme otestovat crud, který generujeme z následující adresy URL
http: // localhost / yii… r = správce
'identityClass' => 'common \ models \ User'Měníme pro náš model správce
'identityClass' => backend \ models \ AdministratorUvádíme, že pro přihlášení do backendu použijeme model Administrator nalezený na zadané cestě.
Dále přejdeme do běžné složky \ models a zkopírujeme soubor LoginForm.php do složky \ backend \ models. Tímto způsobem oddělíme přihlášení, které je v běžné podobě pro backend a frontend.
Řadič, který vyvolává přihlášení, je SiteController.php.php, musíme soubor otevřít a upravit řádek:
používat běžné \ models \ LoginForm;Podle řádku:
použijte backend \ models \ LoginForm;Tímto způsobem při odeslání formuláře vyhledá LoginForm.php backend \ models \ Administrator jak definujeme výše.
Dále musíme přihlašovací formulář upravit tak, aby jej přizpůsobil správcovskému modelu následujícím způsobem:
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> heslo)) {$ this-> addError ($ attribute, 'Nesprávné uživatelské jméno nebo heslo.'); }} přihlášení k veřejné funkci () {if ($ this-> validate ()) {echo 'ahoj'; vrátit Yii :: $ app-> uživatel-> přihlášení ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else {return false; }} // funkce, která hledá uživatele podle jeho funkce chráněné uživatelským jménem getUser () {if ($ this -> _ user === null) {// pokud existuje, získá pole se všemi údaji $ this -> _ uživatel = správce :: findByUsername ($ this-> uživatelské jméno); } vrátit $ this -> _ uživatel; }}?> var13 ->Dále upravíme vygenerovaný model správce a přidáme Rozhraní identity což je třída, která poskytuje různé pokročilé funkce zabezpečení pro řízení přístupu. V tomto případě je náš příklad jednoduchý, ale musíme je nechat implementovat, i když je nepoužíváme.
50], [['' email '],' string ',' max '=> 100]]; } // Pole tabulky atribut public functionLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email',]; } // předdefinovaná funkce v IdentityInterface k vyhledání uživatele podle jména public static function findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / předdefinovaná funkce v IdentityInterface pro vyhledávání klíčů veřejné funkce validatePassword ($ heslo) {return static :: findOne (['key' => $ heslo]); } // předdefinovaná funkce v IdentityInterface k vyhledání uživatele podle ID veřejná statická funkce findIdentity ($ id) {return static :: findOne ($ id); } // předdefinovaná funkce v IdentityInterface pro vyhledávání uživatelů podle značky nebo tokenu veřejná statická funkce findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Vrátí ID uživatele veřejná funkce getId () {return $ this-> id; } // Vrací klíč, který lze použít ke kontrole platnosti veřejné funkce ID getAuthKey () {// return $ this-> auth_key; } // Ověření klíče vráceného předchozí funkcí. veřejná funkce validateAuthKey ($ authKey) {// návrat $ this-> getAuthKey () === $ authKey; }}Dále musíme změnit rozložení v backend \ view \ layout, otevřeme soubor main.php
Hledáme řádky kódu:
// Upravujeme název webu My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-inverzní navbar-fixed-top',],]); 'brandLabel' => 'My Company', We change to 'brandLabel' => 'My Yii Demo', // If I logging in show the link Login if (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Přihlášení', 'url' => [' / site / login']]; } else {// Pokud nejsem, ukážu další odkazy v nabídce $ menuItems [] = ['label' => 'Odhlásit se' '. Yii :: $ app-> uživatel-> identita-> uživatelské jméno.' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; }Zde měníme uživatele
'label' => 'Odhlásit ('. Yii :: $ app-> uživatel-> identita-> uživatelské jméno. ')',Měníme se pro naše uživatelské pole
'label' => 'Odhlásit ('. Yii :: $ app-> uživatel-> identita-> uživatel. ')',Nakonec se můžeme přihlásit:
http: // localhost / pro… mo / backend / web /
- Uživatel admin
- Klíč admin
ZVĚTŠIT
V dalším tutoriálu uvidíme, jak změnit design hlavní stránky, vytvořit nabídky, propojit stránky a přidat funkce. Buďte pozorní a v případě zájmu mě sledujte.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod