Някои функции в сравнение с други рамки
Използвайте шаблона MVC (модел / изглед / контролер)За разлика от други рамки, той разделя всеки компонент в папки за по -добър ред и поддръжка.
- Генериране на код: Yii може да генерира CRUD код от таблица на база данни, създавайки заявки, списъци и формуляри.
- Поддържана интегрирана рамка на jQuery и Bootstrap
- Вградени методи за контрол на достъпа за удостоверяване и оторизация на ролите
- Той включва система за сигурност и предотвратяване на атаки извън мрежата.
- Поддържа джаджи и разширения, разработени от общността
- Поддържа използването на шаблони за дизайн
Инсталиране на Yii Framework
Има две версии на Yii, една базова и една разширена. Основната версия, потребителските файлове и администраторските файлове са заедно, в разширената версия те са разделени в две папки като независими системи Frontend Y Бекенд
За да инсталираме Yii 2.0, трябва да изтеглим файловете от уебсайта на Yii Framework 2.0 от следния URL адрес Yii 2.0 Basic и Yii 2.0 Advanced.
След като изтеглите, разархивираме файла и копираме разширената папка на нашия локален сървър и го преименуваме с името на нашия уеб проект, в този случай го наричаме yiidemo.
След това от терминала трябва да инсталираме файловете от структурата на мрежата за това изпълняваме следното:
sudo php initТой ще ни попита дали искаме да го стартираме в режим на разработка или производство, ще изберем разработка и след това ще потвърдим, така че цялата необходима структура по подразбиране ще бъде копирана.
Ако отидем в уеб папката yiidemo, ще видим, че са инсталирани няколко папки и двете, които ще съдържат задните уеб файлове за администратора и интерфейса за публичната мрежа.
Можем да видим Backend в браузър от url:
http: // localhost / yiidemo / backend / web /
Можем да видим и началния шаблон:
http: // localhost / yiidemo / frontend / web /
Увеличете
Както виждаме, той има някои примерни страници, но входът или регистрацията на потребителя не са функционални, тъй като не се свързват с никаква база данни, но служат като кодова база за начало, а дизайнът също е отзивчив.След това ще създадем базата данни от phpmyadmin, която ще кръстим yiidemodb.
Таблицата за администратора ще има следната структура
- Структура на таблица за таблица `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) ДВИГАТЕЛ = MyISAM AUTO_INCREMENT = 2 КАРТЕТА ПО подразбиране = latin1; - - Дамп данни за таблица `administrator` - INSERT INTO` administrator` (` id`, `user`,` password`, `email`) VALUES (1, 'admin', 'admin', '[email protected] '); След това ще трябва да конфигурираме, за да свържем базата данни с Yii, за това отиваме в папката / common / config и отваряме файла main_local.php, тук ще бъдат общите конфигурации както за бекенда, така и за интерфейса 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 ->След това ще трябва да създадем модела, контролера и изгледа на администратора, за това ще използваме URL адреса: http: // localhost / yii … index.php? R = gii
След като определите коя таблица искаме да генерираме модела, щракнете върху бутона Preview, за да видите как би изглеждал файлът и след това Generate за генериране на кода.
След това отиваме на Crud generator, за да създадем код и изглед, контролер и минимални функционалности за взаимодействие с таблицата. CRUD е акроним за Създаване, Вземане, Актуализиране и Изтриване.
В crud ще трябва да дефинираме маршрутите на модела и контролера, който ще бъде създаден, можем също да добавим модел за търсене.
Модел клас: бекенд \ модели \ Администратор
Клас модел на търсене: backend \ models \ Administrator \ Administrator Search
Клас контролер: backend \ controllers \ AdministratorController
След това натискаме Preview и Generate
След това можем да тестваме суровината, която генерираме от следния URL адрес
http: // localhost / yii … r = администратор
След това отиваме в папката \ backend \ config и отваряме файла main.php, където ще променим следния ред код:
'identityClass' => 'общи \ модели \ Потребител'Променяме модела на нашия администратор
'identityClass' => бекенд \ модели \ АдминистраторНие посочваме, че за да влезем в бекенда ще използваме модела на администратора, намерен в посочения път.
След това отиваме в общата папка \ models и копираме файла LoginForm.php в папката backend \ models, като по този начин отделяме данните за вход, които са в обща форма за бекенда и интерфейса.
Контролерът, който извиква вход, е SiteController.php.php, трябва да отворим файла и да променим реда:
използвайте общ \ models \ LoginForm;По реда:
използвайте бекенд \ models \ LoginForm;По този начин, когато формулярът бъде изпратен, той ще търси LoginForm.php в бекенд \ модели \ Администратор както дефинираме по -горе.
След това трябва да променим LoginForm, за да го адаптираме към модела на администратора, както следва:
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attribute, 'Неправилно потребителско име или парола.'); }} публична функция login () {if ($ this-> validate ()) {echo 'hello'; връщане Yii :: $ app-> потребител-> вход ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else {return false; }} // функция, която търси потребител чрез защитеното от него потребителско име функция getUser () {if ($ this -> _ user === null) {// ако съществува, получава масив с всички данни $ this -> _ потребител = Администратор :: findByUsername ($ this-> потребителско име); } върнете $ this -> _ потребител; }}?> var13 ->След това променяме генерирания модел на администратор и ще добавим IdentityInterface който е клас, който предоставя различни разширени функции за защита за контрол на достъпа. В този случай нашият пример е прост, но трябва да ги приложим, дори ако не ги използваме.
50], [['имейл'], 'низ', 'макс' => 100]]; } // Полетата на таблицата обществена функция attributeLabels () {return ['id' => 'ID', 'user' => 'Потребител', 'password' => 'Парола', 'email' => 'Имейл',]; } // предварително дефинирана функция в IdentityInterface за намиране на потребител по име публична статична функция findByUsername ($ потребителско име) {return static :: findOne (['user' => $ username]); } / предварително дефинирана функция в IdentityInterface за търсене на ключова обществена функция validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // предварително дефинирана функция в IdentityInterface за намиране на потребител по id публична статична функция findIdentity ($ id) {return static :: findOne ($ id); } // предварително дефинирана функция в IdentityInterface за търсене на потребител по маркер или маркер публична статична функция findIdentityByAccessToken ($ token, $ type = null) {// връщане static :: findOne (['access_token' => $ token]); } // Връща публичната функция на потребителския идентификатор getId () {return $ this-> id; } // Връща ключ, който може да се използва за проверка на валидността на публична функция за идентификация getAuthKey () {// връща $ this-> auth_key; } // Потвърждава ключа, върнат от предишната функция. публична функция validateAuthKey ($ authKey) {// връща $ this-> getAuthKey () === $ authKey; }}След това трябва да променим оформлението в backend \ view \ layout, отваряме файла main.php
Търсим редовете на кода:
// Променяме името на мрежата Моята компания NavBar :: begin (['brandLabel' => 'Моята компания', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top',],]); 'brandLabel' => 'Моята компания', Променяме се на 'brandLabel' => 'My Yii Demo', // Ако съм влязъл, показвам връзката Login if (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Вход', 'url' => [' / site / login']]; } else {// Ако не съм, ще покажа други връзки в менюто $ menuItems [] = ['label' => 'Изход ('. Yii :: $ app-> потребител-> идентичност-> потребителско име. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; }Тук сменяме потребителя
'label' => 'Изход ('. Yii :: $ app-> user-> identity-> username. ')',Променяме се за нашето потребителско поле
'label' => 'Изход ('. Yii :: $ app-> user-> identity-> user. ')',Накрая можем да влезем:
http: // localhost / pro… mo / backend / web /
- Потребител администратор
- Ключ администратор
Увеличете
Главната страница е променена от \ backend \ views \ site.В друг урок ще видим как да променим дизайна на главната страница, да създадем менюта, да свържем страници и да добавим функционалности. Бъдете внимателни и ме последвайте, ако се интересувате.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка