Yii Framework 2.0 - Разработка на уеб приложения

Yii е рамка написани на php, за да направят развитието на бизнес уеб приложенията по -гъвкави и стандартни. Неговата архитектура, базирана на компоненти, е много подходяща за разработване на приложения, които трябва да поддържат много трафик, които изискват стандартни и добре документирани методи за разработка, тази рамка се използва за всяко уеб приложение като портали, системи за управление на бизнеса, управление на съдържанието системи (CMS), уебсайтове за електронна търговия.

Някои функции в сравнение с други рамки


Използвайте шаблона 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.
В друг урок ще видим как да променим дизайна на главната страница, да създадем менюта, да свържем страници и да добавим функционалности. Бъдете внимателни и ме последвайте, ако се интересувате.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave