Yii Framework 2.0 - Tworzenie aplikacji internetowych

Yii to framework napisany w php, aby tworzenie biznesowych aplikacji internetowych było bardziej zwinne i standardowe. Jego architektura oparta na komponentach jest bardzo odpowiednia do tworzenia aplikacji, które muszą obsługiwać duży ruch, które wymagają standardowych i dobrze udokumentowanych metod rozwoju, ten framework jest używany do dowolnej aplikacji internetowej, takiej jak portale, systemy zarządzania biznesem, zarządzanie treścią systemy (CMS), serwisy e-commerce.

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 php
Zapyta nas, czy chcemy uruchomić go w trybie Deweloperskim czy Produkcyjnym, wybierzemy Development a następnie potwierdzimy, aby skopiować całą niezbędną domyślną strukturę.

Jeśli przejdziemy do folderu webowego yiidemo, zobaczymy, że zainstalowano kilka folderów, a dwa będą zawierać pliki web backendu dla administratora i frontend dla sieci publicznej.
Backend możemy zobaczyć w przeglądarce z adresu URL:
http://localhost/yiidemo/backend/web/

Możemy również zobaczyć szablon domu:
http://localhost/yiidemo/frontend/web/

POWIĘKSZAĆ

Jak widać, ma kilka przykładowych stron, ale logowanie lub rejestracja użytkownika nie działają, ponieważ nie łączą się z żadną bazą danych, ale służą jako baza kodu na początek, również projekt jest responsywny.
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

Po zdefiniowaniu tabeli, w której chcemy wygenerować model, kliknij przycisk Podgląd, aby zobaczyć, jak będzie wyglądał plik, a następnie Generuj, aby wygenerować kod.
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.

W crud będziemy musieli zdefiniować trasy modelu i kontrolera, który zostanie utworzony, możemy też dodać model do wyszukiwania.
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

Następnie przechodzimy do folderu \backend\config i otwieramy plik main.php, w którym zmodyfikujemy następujący wiersz kodu:
 'identityClass' => 'wspólne \ modele \ Użytkownik'
Zmieniamy się na nasz model administratora
 'identityClass' => backend \ modele \ Administrator
Wskazujemy, ż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Ć

Strona główna została zmodyfikowana z \ backend \ widoki \ strona.
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

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave