Niektóre funkcje w porównaniu do innych frameworków
Użyj wzoru MVC (model / widok / kontroler)W przeciwieństwie do innych frameworków, rozdziela każdy komponent na foldery dla lepszego porządku i konserwacji.
- Generowanie kodu: Yii może generować kod CRUD z tabeli bazy danych, tworząc zapytania, listy i formularze.
- Zintegrowana obsługa frameworków jQuery i Bootstrap
- Wbudowane metody kontroli dostępu uwierzytelniania i autoryzacji ról
- Zawiera zewnętrzny system bezpieczeństwa i zapobiegania atakom.
- Obsługuje widżety i rozszerzenia opracowane przez społeczność
- Obsługuje korzystanie z szablonów projektowych
Instalacja Yii Framework
Istnieją dwie wersje Yii, jedna podstawowa i jedna zaawansowana. W wersji podstawowej pliki użytkownika i pliki administratora są razem, w wersji zaawansowanej są podzielone na dwa foldery jako niezależne systemy Frontend Tak Zaplecze
Aby zainstalować Yii 2.0, musimy pobrać pliki ze strony internetowej Yii Framework 2.0 z następującego adresu URL Yii 2.0 Basic i Yii 2.0 Advanced.
Po pobraniu rozpakowujemy plik i kopiujemy folder zaawansowany na nasz lokalny serwer i zmieniamy jego nazwę na nazwę naszego projektu internetowego, w tym przypadku nazywamy go yiidemo.
Następnie z terminala musimy zainstalować pliki struktury sieci, w tym celu wykonujemy następujące czynności:
inicjowanie sudo phpZapyta nas, czy chcemy uruchomić go w trybie Deweloperskim czy Produkcyjnym, wybierzemy Development a następnie potwierdzimy, aby skopiować całą niezbędną domyślną strukturę.
Backend możemy zobaczyć w przeglądarce z adresu URL:
http://localhost/yiidemo/backend/web/
http://localhost/yiidemo/frontend/web/
POWIĘKSZAĆ
Następnie stworzymy bazę danych z phpmyadmin, którą nazwiemy yiidemodb.
Tabela dla administratora będzie miała następującą strukturę
- Struktura tabeli dla tabeli "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) SILNIK = MyISAM AUTO_INCREMENT = 2 DOMYŚLNY ZESTAW ZNAKÓW = latin1; - - Zrzuć dane dla tabeli „administrator” - INSERT INTO” administrator” („id”, „użytkownik”, „hasło”, „e-mail”) WARTOŚCI (1, „admin”, „admin”, „ [email protected] '); Następnie musimy skonfigurować połączenie bazy danych z Yii w tym celu przechodzimy do folderu / common / config i otwieramy plik main_local.php , tutaj będą wspólne konfiguracje zarówno dla backendu jak i frontendu 'yii \ db \ Connection ', 'dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' nazwa użytkownika '=>' root ',' hasło '=>' ',' charset '=>' utf8 ',]; ?> zm13 ->Następnie będziemy musieli stworzyć model, kontroler i widok administratora, do tego użyjemy adresu URL: http://localhost/yii…index.php?R=gii
Następnie przechodzimy do generatora Crud, aby stworzyć kod i widok, kontroler i minimalne funkcjonalności do interakcji z tabelą. CRUD to skrót od Create, Get, Update i Delete.
Klasa modelu: backend \ modele \ Administrator
Wyszukaj klasę modelu: backend \ modele \ Administrator \ Wyszukiwanie administratora
Klasa kontrolera: backend \ kontrolery \ AdministratorController
Następnie wciskamy Podgląd i Generuj
Następnie możemy przetestować crud, które generujemy z następującego adresu URL
http://localhost/yii… r = administrator
'identityClass' => 'wspólne \ modele \ Użytkownik'Zmieniamy się na nasz model administratora
'identityClass' => backend \ modele \ AdministratorWskazujemy, że do zalogowania się do backendu użyjemy modelu Administratora znajdującego się w określonej ścieżce.
Następnie przechodzimy do folderu common \ models i kopiujemy plik LoginForm.php do folderu backend \ models, w ten sposób oddzielamy login, który jest w formie wspólnej dla backendu i frontendu.
Kontroler wywołujący login to SiteController.php.php, musimy otworzyć plik i zmodyfikować linię:
użyj wspólnych \ modele \ LoginForm;Przy linii:
użyj zaplecza \ modele \ LoginForm;W ten sposób, gdy formularz zostanie wysłany, będzie szukał LoginForm.php w backend \ modele \ Administrator jak definiujemy powyżej.
Następnie musimy zmodyfikować LoginForm, aby dostosować go do modelu administratora w następujący sposób:
pobierzUżytkownika (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError (atrybut $, 'Nieprawidłowa nazwa użytkownika lub hasło.'); }} public function login () {if ($ this-> validate ()) {echo 'hello'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> RememberMe? 3600 * 24 * 30: 0); } else {zwróć fałszywe; }} // funkcja wyszukująca użytkownika po jego nazwie użytkownika funkcja chroniona getUser () {if ($ this -> _ user === null) {// jeśli istnieje pobiera tablicę ze wszystkimi danymi $ this -> _ użytkownik = Administrator :: findByUsername ($ this-> username); } return $ this -> _ user; }}?> zm13 ->Następnie modyfikujemy wygenerowany model Administratora i dodamy Interfejs tożsamości która jest klasą, która zapewnia różne zaawansowane funkcje bezpieczeństwa dla kontroli dostępu. W tym przypadku nasz przykład jest prosty, ale musimy je zaimplementować, nawet jeśli ich nie używamy.
50], [['email'], 'string', 'max' => 100]]; } // Pola tabeli public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email' ,]; } // predefiniowana funkcja w IdentityInterface do wyszukiwania użytkownika według nazwy public static funkcja findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / predefiniowana funkcja w IdentityInterface do wyszukiwania klucza funkcja publiczna validatePassword (hasło $) {return static :: findOne (['key' => $ hasło]); } // predefiniowana funkcja w IdentityInterface do wyszukiwania użytkownika po id public static funkcja findIdentity ($ id) {return static :: findOne ($ id); } // predefiniowana funkcja w IdentityInterface do wyszukiwania użytkownika po znaczniku lub tokenie public static funkcja findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Zwraca identyfikator użytkownika public function getId () {return $ this-> id; } // Zwraca klucz, który może być użyty do sprawdzenia poprawności identyfikatora public function getAuthKey () {// return $ this-> auth_key; } // Sprawdź poprawność klucza zwróconego przez poprzednią funkcję. public function validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }}Następnie musimy zmienić układ w backend \ view \ layout, otwieramy plik main.php
Szukamy wierszy kodu:
// Zmieniamy nazwę sieci web Pasek nawigacyjny Moja firma :: begin (['brandLabel' => 'Moja firma', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' = > 'navbar-inverse navbar-fixed-top',],]); 'brandLabel' => 'My Company', zmieniamy na 'brandLabel' => 'My Yii Demo', // Jeśli jestem zalogowany, wyświetlam link Zaloguj się jeśli (Yii :: $ app-> user-> isGuest) {$ menuItems [ ] = ['label' => 'Login', 'url' => ['/ site / login']]; } else {// Jeśli nie, pokażę inne linki w menu $ menuItems [] = ['label' => 'Wyloguj się ('. Yii :: $ app-> user-> identity-> username. ' )', ' url '=> [' / site / wyloguj '],' linkOptions' => ['data-method' => 'post']]; }Tutaj zmieniamy użytkownika
'label' => 'Wyloguj się ('. Yii :: $ app-> użytkownik-> tożsamość-> nazwa użytkownika. ')',Zmieniamy się dla naszego pola użytkownika
'label' => 'Wyloguj się ('. Yii :: $ app-> użytkownik-> tożsamość-> użytkownik. ')',Wreszcie możemy się zalogować:
http://localhost/pro… mo/backend/web/
- Użytkownik Admin
- Klucz Admin
POWIĘKSZAĆ
W innym samouczku zobaczymy, jak zmienić wygląd strony głównej, stworzyć menu, strony linków i dodać funkcjonalności. Bądź uważny i śledź mnie, jeśli jesteś zainteresowany.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt