Yii Framework 2.0 - Utveckling av webbapplikationer

Yii är en ram skrivet i php för att göra utvecklingen av affärswebbapplikationer mer smidig och standard. Arkitekturen baserad på komponenter, är mycket lämplig för utveckling av applikationer som måste stödja mycket trafik, som kräver standardiserade och väldokumenterade utvecklingsmetoder, detta ramverk används för alla webbapplikationer som portaler, affärshanteringssystem, innehållshantering system (CMS), e -handelswebbplatser.

Vissa funktioner jämfört med andra ramar


Använd mönstret MVC (modell / vy / styrenhet)Till skillnad från andra ramverk separerar den varje komponent i mappar för bättre ordning och underhåll.
  • Kodgenerering: Yii kan generera CRUD -kod från en databastabell och skapa frågor, listor och formulär.
  • Integrerat jQuery- och Bootstrap -ramstöd
  • Inbyggda åtkomstkontrollmetoder för rollautentisering och auktorisering
  • Det innehåller ett säkerhets- och attackförebyggande system utanför webben.
  • Stöder widgets och tillägg som utvecklats av communityn
  • Stöder användning av designmallar

Yii Framework Installation


Det finns två versioner av Yii, en Basic och en Advanced. Grundversionen är användarfilerna och administratörsfilerna tillsammans, i den avancerade versionen är de separerade i två mappar som oberoende system Frontend Y Backend
För att installera Yii 2.0 måste vi ladda ner filerna från Yii Framework 2.0 -webbplatsen från följande webbadress Yii 2.0 Basic och Yii 2.0 Advanced.
När vi har laddat ner packar vi upp filen och kopierar den avancerade mappen på vår lokala server och byter namn på den med namnet på vårt webbprojekt, i det här fallet kallar vi den yiidemo.
Därefter, från terminalen, måste vi installera filerna i webbstrukturen för detta kör vi följande:
 sudo php init
Det kommer att fråga oss om vi vill köra det i utvecklings- eller produktionsläge, vi väljer utveckling och bekräftar sedan, så all nödvändig standardstruktur kommer att kopieras.

Om vi ​​går till yiidemo -webbmappen ser vi att flera mappar installerades och de två som innehåller backend -webbfilerna för administratören och frontend för den offentliga webben.
Vi kan se backend i en webbläsare från webbadressen:
http: // localhost / yiidemo / backend / web /

Vi kan också se hemmallen:
http: // localhost / yiidemo / frontend / web /

FÖRSTORA

Som vi kan se har den några exempelsidor men inloggningen eller användarregistreringen fungerar inte eftersom de inte ansluter till någon databas, men de fungerar som en kodbas till att börja med, även designen är lyhörd.
Därefter skapar vi databasen från phpmyadmin som vi kommer att namnge yiidemodb.
Tabellen för administratören kommer att ha följande struktur
 - Tabellstruktur för tabell `administratör` - SKAPA TABELL OM DET INTE FASTER` administratör` (` id` tinyint (3) NOT NULL, `user` varchar (50) DEFAULT NULL,` key` varchar (50) DEFAULT NULL, `email `varchar (100) DEFAULT NULL) ENGINE = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Dumpdata för tabell `administratör` - INSERT INTO` administratör` (` id`, `användare`,` lösenord`, `e -post`) VÄRDEN (1, 'admin', 'admin', '[email protected] '); Därefter måste vi konfigurera för att länka databasen med Yii för detta går vi till mappen / common / config och öppnar filen main_local.php, här kommer de vanliga konfigurationerna för både backend och frontend 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 -> 
Därefter måste vi skapa modellen, handkontrollen och administratörens vy, för detta använder vi URL: en: http: // localhost / yii … index.php? R = gii

Efter att ha definierat vilken tabell vi vill generera modellen, klicka på knappen Förhandsgranska för att se hur filen skulle se ut och sedan Generera för att generera koden.
Därefter går vi till Crud -generator för att skapa kod och vy, controller och minimala funktioner för att interagera med bordet. CRUD är förkortningen för Create, Get, Update and Delete.

I crud måste vi definiera modellens rutter och kontrollenheten som kommer att skapas, vi kan också lägga till en modell för sökningar.
Modellklass: backend \ models \ Administrator
Sök modellklass: backend \ models \ Administrator \ Administrator Search
Kontrollklass: backend \ controllers \ AdministratorController
Sedan trycker vi på Förhandsgranska och Generera
Sedan kan vi testa råolja som vi genererar från följande webbadress
http: // localhost / yii … r = administratör

Därefter går vi till mappen \ backend \ config och öppnar main.php -filen, där vi kommer att ändra följande kodrad:
 'identityClass' => 'vanliga \ modeller \ användare'
Vi ändrar för vår administratörsmodell
 'identityClass' => backend \ models \ Administrator
Vi anger att för att logga in på backend kommer vi att använda administratörsmodellen som finns i den angivna sökvägen.
Därefter går vi till den vanliga \ models -mappen och kopierar filen LoginForm.php i mappen backend \ models, på så sätt separerar vi inloggningen som är i vanlig form för backend och frontend.
Den registeransvarige som åberopar inloggningen är SiteController.php.php, vi måste öppna filen och ändra raden:
 använd vanliga \ modeller \ LoginForm; 
Vid raden:
 använd backend \ models \ LoginForm;
På detta sätt, när formuläret skickas, kommer det att leta efter LoginForm.php i backend \ models \ Administrator som vi definierar ovan.
Därefter måste vi ändra LoginForm för att anpassa den till administratörsmodellen enligt följande:
 getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attribut, 'Felaktigt användarnamn eller lösenord.'); }} inloggning för allmän funktion () {if ($ this-> validate ()) {echo 'hej'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } annat {return false; }} // funktion som letar efter en användare med sin användarnamnskyddade funktion getUser () {if ($ this -> _ user === null) {// om den finns får den en array med alla data $ this -> _ user = Administrator :: findByUsername ($ this-> användarnamn); } return $ this -> _ user; }}?> var13 -> 
Därefter ändrar vi den genererade administratörsmodellen, och vi lägger till Identity Interface som är en klass som erbjuder olika avancerade säkerhetsfunktioner för åtkomstkontroll. I det här fallet är vårt exempel enkelt men vi måste ha dem implementerade även om vi inte använder dem.
 50], [['e -post'], 'string', 'max' => 100]]; } // Tabellfält public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email',]; } // fördefinierad funktion i IdentityInterface för att hitta användare med namn offentlig statisk funktion findByUsername ($ användarnamn) {return static :: findOne (['user' => $ användarnamn]); } / fördefinierad funktion i IdentityInterface för att söka efter viktig offentlig funktion validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // fördefinierad funktion i IdentityInterface för att hitta användare med id offentlig statisk funktion findIdentity ($ id) {return static :: findOne ($ id); } // fördefinierad funktion i IdentityInterface för att söka användare efter markör eller token offentlig statisk funktion findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Returnerar användar-ID: ns offentliga funktion getId () {return $ this-> id; } // Returnerar en nyckel som kan användas för att kontrollera giltigheten av en ID-funktion public getAuthKey () {// return $ this-> auth_key; } // Validera nyckeln som returnerades av föregående funktion. public function validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }} 
Därefter måste vi ändra layouten i backend \ view \ layout, vi öppnar main.php -filen
Vi letar efter kodraderna:
 // Vi ändrar namnet på webben My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-invers navbar-fixed-top',],]); 'brandLabel' => 'Mitt företag', Vi byter till 'brandLabel' => 'Min Yii Demo', // Om jag är inloggad visar jag länken Logga in om (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Login', 'url' => [' / site / login']]; } annat {// Om jag inte är det, kommer jag att visa andra länkar i menyn $ menuItems [] = ['label' => 'Logga ut ('. Yii :: $ app-> användare-> identitet-> användarnamn. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; } 
Här byter vi användare
 'label' => 'Logga ut ('. Yii :: $ app-> användare-> identitet-> användarnamn. ')',
Vi ändrar för vårt användarfält
 'label' => 'Logga ut ('. Yii :: $ app-> användare-> identitet-> användare. ')',
Slutligen kan vi logga in:
http: // localhost / pro … mo / backend / web /
  • Användare administration
  • Nyckel administration

FÖRSTORA

Huvudsidan är ändrad från \ backend \ views \ site.
I en annan handledning kommer vi att se hur man ändrar utformningen av huvudsidan, skapar menyer, länkar sidor och lägger till funktioner. Var uppmärksam och följ mig om du är intresserad.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave