Indholdsfortegnelse
Yii er en ramme skrevet i php for at gøre udviklingen af forretningswebapplikationer mere adræt og standard. Dens arkitektur baseret på komponenter er meget velegnet til udvikling af applikationer, der skal understøtte meget trafik, der kræver standard og veldokumenterede udviklingsmetoder, denne ramme bruges til enhver webapplikation såsom portaler, forretningsledelsessystemer, indholdsstyring systemer (CMS), e -handelswebsteder.Nogle funktioner sammenlignet med andre rammer
Brug mønsteret MVC (model / visning / controller)I modsætning til andre rammer adskiller den hver komponent i mapper for bedre orden og vedligeholdelse.
- Kodegenerering: Yii kan generere CRUD -kode fra en databasetabel og oprette forespørgsler, lister og formularer.
- Integreret understøttelse af jQuery og Bootstrap
- Indbygget adgangskontrolmetoder til rollegodkendelse og autorisation
- Det indeholder et sikkerheds- og angrebsforebyggende system eksternt til internettet.
- Understøtter widgets og udvidelser udviklet af samfundet
- Understøtter brug af designskabeloner
Yii Framework Installation
Der er to versioner af Yii, en Basic og en Advanced. Den grundlæggende version, brugerfilerne og administratorfilerne er sammen, i den avancerede version er de adskilt i to mapper som uafhængige systemer Frontend Y Bagende
For at installere Yii 2.0 skal vi downloade filerne fra Yii Framework 2.0 -webstedet fra følgende url Yii 2.0 Basic og Yii 2.0 Advanced.
Når den er downloadet, pakker vi filen ud og kopierer den avancerede mappe på vores lokale server og omdøber den med navnet på vores webprojekt, i dette tilfælde kalder vi den yiidemo.
Dernæst fra terminalen skal vi installere filerne i webens struktur til dette, vi udfører følgende:
sudo php initDet vil spørge os, om vi vil køre det i udviklings- eller produktionsfunktion, vi vil vælge Udvikling og derefter bekræfte, så al den nødvendige standardstruktur vil blive kopieret.
Hvis vi går til yiidemo -webmappen, vil vi se, at flere mapper blev installeret og de to, der vil indeholde backend -webfilerne til administratoren og frontend til det offentlige web.
Vi kan se Backend i en browser fra url:
http: // localhost / yiidemo / backend / web /
Vi kan også se hjemmeskabelonen:
http: // localhost / yiidemo / frontend / web /
FORSTØRRE
Som vi kan se, har den nogle eksempelsider, men login eller brugerregistrering er ikke funktionelle, da de ikke opretter forbindelse til nogen database, men de fungerer som en kodebase til at begynde med, og designet er også lydhørt.Dernæst opretter vi databasen fra phpmyadmin, som vi vil navngive yiidemodb.
Tabellen til administratoren har følgende struktur
- Tabelstruktur for tabellen `administrator` - Opret tabel, hvis den ikke findes` administrator` (` 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 for tabel `administrator` - INSERT INTO` administrator` (` id`, `bruger`,` password`, `email`) VÆRDIER (1, 'admin', 'admin', '[email protected] '); Dernæst bliver vi nødt til at konfigurere til at forbinde databasen med Yii for dette går vi til mappen / common / config og åbner main_local.php -filen, her er de fælles konfigurationer for både backend og frontend 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' brugernavn '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 ->Dernæst bliver vi nødt til at oprette modellen, controlleren og administratorens visning, til dette vil vi bruge URL'en: http: // localhost / yii … index.php? R = gii
Efter at have defineret hvilken tabel vi vil generere modellen, skal du klikke på knappen Preview for at se, hvordan filen ville se ud, og derefter Generere for at generere koden.
Dernæst går vi til Crud generator for at oprette koden og visningen, controlleren og minimale funktioner til at interagere med bordet. CRUD er forkortelsen for Opret, Hent, Opdater og Slet.
I crud bliver vi nødt til at definere modellens ruter og controlleren, der vil blive oprettet, vi kan også tilføje en model til søgninger.
Model klasse: backend \ models \ Administrator
Søg modelklasse: backend \ models \ Administrator \ Administratorsøgning
Controller klasse: backend \ controllers \ AdministratorController
Derefter trykker vi på Preview og Generer
Derefter kan vi teste den råolie, som vi genererer fra følgende url
http: // localhost / yii … r = administrator
Dernæst går vi til mappen \ backend \ config og åbner main.php -filen, hvor vi vil ændre følgende kodelinje:
'identityClass' => 'almindelige \ modeller \ Bruger'Vi ændrer for vores administratormodel
'identityClass' => backend \ models \ AdministratorVi angiver, at for at logge ind på backend vil vi bruge administratormodellen, der findes i den angivne sti.
Dernæst går vi til mappen common \ models og kopierer filen LoginForm.php i mappen backend \ models, på denne måde adskiller vi det login, der er i fælles form for backend og frontend.
Den controller, der påberåber login er SiteController.php.php, vi skal åbne filen og ændre linjen:
brug almindelige \ modeller \ LoginForm;Ved linjen:
brug backend \ models \ LoginForm;På denne måde, når formularen er sendt, vil den lede efter LoginForm.php i backend \ models \ Administrator som vi definerer ovenfor.
Dernæst skal vi ændre LoginForm for at tilpasse den til administratormodellen som følger:
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attribute, 'Forkert brugernavn eller adgangskode.'); }} login til offentlig funktion () {if ($ this-> validate ()) {echo 'hej'; returner Yii :: $ app-> bruger-> login ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } else {return false; }}} // funktion, der leder efter en bruger ved hjælp af hans brugernavnsbeskyttede funktion getUser () {if ($ this -> _ user === null) {// hvis den findes, får den et array med alle data $ this -> _ user = Administrator :: findByUsername ($ this-> brugernavn); } returner $ denne -> _ bruger; }}?> var13 ->Dernæst ændrer vi den genererede administratormodel, og vi tilføjer Identity Interface som er en klasse, der giver forskellige avancerede sikkerhedsfunktioner til adgangskontrol. I dette tilfælde er vores eksempel enkelt, men vi skal have dem implementeret, selvom vi ikke bruger dem.
50], [['e -mail'], 'string', 'max' => 100]]; } // Tabelfelter public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email',]; } // foruddefineret funktion i IdentityInterface til at finde bruger ved navn offentlig statisk funktion findByUsername ($ brugernavn) {return static :: findOne (['user' => $ brugernavn]); } / foruddefineret funktion i IdentityInterface til at søge efter offentlig nøglefunktion validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // foruddefineret funktion i IdentityInterface til at finde bruger ved id offentlig statisk funktion findIdentity ($ id) {return static :: findOne ($ id); } // foruddefineret funktion i IdentityInterface til søgning efter bruger efter markør eller token offentlig statisk funktion findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Returnerer bruger-id'ens offentlige funktion getId () {return $ this-> id; } // Returnerer en nøgle, der kan bruges til at kontrollere gyldigheden af et offentligt id-id getAuthKey () {// return $ this-> auth_key; } // Valider nøglen, der returneres af den tidligere funktion. offentlig funktion validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }}Dernæst skal vi ændre layoutet i backend \ view \ layout, vi åbner main.php -filen
Vi leder efter kodelinjer:
// Vi ændrer navnet på internettet My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-invers navbar-fixed-top',],]); 'brandLabel' => 'My Company', Vi skifter til 'brandLabel' => 'My Yii Demo', // Hvis jeg er logget ind, viser jeg linket Login if (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Login', 'url' => [' / site / login']]; } andet {// Hvis jeg ikke er det, viser jeg andre links i menuen $ menuItems [] = ['label' => 'Logout ('. Yii :: $ app-> bruger-> identitet-> brugernavn. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; }Her ændrer vi brugeren
'label' => 'Log af ('. Yii :: $ app-> bruger-> identitet-> brugernavn. ')',Vi ændrer for vores brugerfelt
'label' => 'Log af ('. Yii :: $ app-> bruger-> identitet-> bruger. ')',Endelig kan vi logge ind:
http: // localhost / pro … mo / backend / web /
- Bruger admin
- Nøgle admin
FORSTØRRE
Hovedsiden er ændret fra \ backend \ views \ site.I en anden vejledning ser vi, hvordan du ændrer designet på hovedsiden, opretter menuer, linker sider og tilføjer funktionaliteter. Vær opmærksom og følg mig, hvis du er interesseret.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt