Innholdsfortegnelse
Yii er et rammeverk skrevet i php for å gjøre utviklingen av forretningswebapplikasjoner mer smidig og standard. Arkitekturen som er basert på komponenter, er veldig egnet for utvikling av applikasjoner som må støtte mye trafikk, som krever standard og veldokumentert utviklingsmetoder, dette rammeverket brukes for alle webapplikasjoner som portaler, forretningsledelsessystemer, innholdsstyring systemer (CMS), netthandelsnettsteder.Noen funksjoner sammenlignet med andre rammer
Bruk mønsteret MVC (modell / visning / kontroller)I motsetning til andre rammer, skiller den hver komponent i mapper for bedre orden og vedlikehold.
- Kodegenerering: Yii kan generere CRUD -kode fra en databasetabell og lage spørringer, lister og skjemaer.
- Integrert støtte for jQuery og Bootstrap
- Innebygd tilgangskontrollmetoder for rolleautentisering og autorisasjon
- Den inneholder et sikkerhets- og angrepssikringssystem utenfor nettet.
- Støtter widgets og utvidelser utviklet av samfunnet
- Støtter bruk av designmaler
Yii rammeinstallasjon
Det er to versjoner av Yii, en Basic og en Advanced. Grunnversjonen brukerfilene og administratorfilene er sammen, i den avanserte versjonen er de atskilt i to mapper som uavhengige systemer Frontend Y Baksiden
For å installere Yii 2.0 må vi laste ned filene fra Yii Framework 2.0 -nettstedet fra følgende url Yii 2.0 Basic og Yii 2.0 Advanced.
Når den er lastet ned pakker vi ut filen og kopierer den avanserte mappen til vår lokale server og gir den nytt navn med navnet på vårt webprosjekt, i dette tilfellet kaller vi det yiidemo.
Neste, fra terminalen, må vi installere filene i strukturen på nettet for dette utfører vi følgende:
sudo php initDen vil spørre oss om vi vil kjøre den i utviklings- eller produksjonsmodus, vi vil velge utvikling og deretter bekrefte, så all nødvendig standardstruktur vil bli kopiert.
Hvis vi går til yiidemo -webmappen, vil vi se at flere mapper ble installert og de to som vil inneholde backend -webfilene for administratoren og frontend for det offentlige nettet.
Vi kan se Backend i en nettleser fra url:
http: // localhost / yiidemo / backend / web /
Vi kan også se hjemmemalen:
http: // localhost / yiidemo / frontend / web /
FORSTØRRE
Som vi kan se, har den noen eksempelsider, men pålogging eller brukerregistrering er ikke funksjonelle siden de ikke kobler seg til noen database, men de fungerer som en kodebase til å begynne med, også designet er responsivt.Deretter vil vi lage databasen fra phpmyadmin som vi vil kalle yiidemodb.
Tabellen for administratoren vil ha følgende struktur
- Tabellstruktur for tabellen `administrator` - OPPRETT TABELL IF NOT EXISTS` 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 tabellen `administrator` - INSERT INTO` administrator` (` id`, `user`,` password`, `email`) VERDIER (1, 'admin', 'admin', '[email protected] '); Deretter må vi konfigurere for å koble databasen til Yii for dette går vi til / common / config -mappen og åpner main_local.php -filen, her vil det være de vanlige konfigurasjonene for både backend og frontend 'yii \ db \ Connection ',' dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 ->Deretter må vi lage modellen, kontrolleren og administratorens visning, for dette bruker vi URL -adressen: http: // localhost / yii … index.php? R = gii
Etter å ha definert hvilken tabell vi vil generere modellen, klikker du på Preview -knappen for å se hvordan filen ville se ut, og deretter Generer for å generere koden.
Deretter går vi til Crud generator for å lage koden og visningen, kontrolleren og minimale funksjoner for å samhandle med tabellen. CRUD er forkortelsen for Create, Get, Update and Delete.
I cruden må vi definere rutene til modellen og kontrolleren som skal opprettes, vi kan også legge til en modell for søk.
Modellklasse: backend \ models \ Administrator
Søk etter modellklasse: backend \ models \ Administrator \ Administrator Search
Kontrollklasse: backend \ controllers \ AdministratorController
Deretter trykker vi på Forhåndsvis og generer
Deretter kan vi teste råoljen som vi genererer fra følgende url
http: // localhost / yii … r = administrator
Deretter går vi til \ backend \ config -mappen og åpner main.php -filen, der vi vil endre følgende kodelinje:
'identityClass' => 'vanlige \ modeller \ bruker'Vi endrer for vår administratormodell
'identityClass' => backend \ models \ AdministratorVi indikerer at for å logge på backend vil vi bruke administratormodellen som finnes i den angitte banen.
Deretter går vi til den vanlige \ models -mappen og kopierer LoginForm.php -filen i backend \ models -mappen, på denne måten skiller vi påloggingen som er i vanlig form for backend og frontend.
Kontrolleren som påberoper seg pålogging er SiteController.php.php, vi må åpne filen og endre linjen:
bruk vanlige \ modeller \ LoginForm;Ved linjen:
bruk backend \ models \ LoginForm;På denne måten, når skjemaet sendes, vil det se etter LoginForm.php i backend \ models \ Administrator som vi definerer ovenfor.
Deretter må vi endre LoginForm for å tilpasse den til administratormodellen som følger:
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attributt, 'Feil brukernavn eller passord.'); }} pålogging for offentlig funksjon () {if ($ this-> validate ()) {echo 'hallo'; returner Yii :: $ app-> bruker-> pålogging ($ this-> getUser (), $ this-> rememberMe? 3600 * 24 * 30: 0); } annet {return false; }}} // funksjon som ser etter en bruker ved hjelp av den brukernavnbeskyttede funksjonen getUser () {if ($ this -> _ user === null) {// hvis den eksisterer, får den en matrise med alle dataene $ this -> _ user = Administrator :: findByUsername ($ this-> brukernavn); } return $ this -> _ user; }}?> var13 ->Deretter endrer vi den genererte administratormodellen, og vi legger til Identity Interface som er en klasse som tilbyr forskjellige avanserte sikkerhetsfunksjoner for tilgangskontroll. I dette tilfellet er vårt eksempel enkelt, men vi må få dem implementert selv om vi ikke bruker dem.
50], [['e -post'], 'streng', 'maks' => 100]]; } // Tabellfelter public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email',]; } // forhåndsdefinert funksjon i IdentityInterface for å finne bruker ved navn offentlig statisk funksjon findByUsername ($ brukernavn) {return static :: findOne (['user' => $ brukernavn]); } / forhåndsdefinert funksjon i IdentityInterface for å søke etter viktige offentlige funksjoner validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // forhåndsdefinert funksjon i IdentityInterface for å finne bruker etter id offentlig statisk funksjon findIdentity ($ id) {return static :: findOne ($ id); } // forhåndsdefinert funksjon i IdentityInterface for å søke bruker etter markør eller token offentlig statisk funksjon findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Returnerer bruker-ID offentlig funksjon getId () {return $ this-> id; } // Returnerer en nøkkel som kan brukes til å kontrollere gyldigheten av en offentlig ID-funksjon getAuthKey () {// return $ this-> auth_key; } // Valider nøkkelen som ble returnert av den forrige funksjonen. offentlig funksjon validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }}Deretter må vi endre oppsettet i backend \ view \ layout, vi åpner main.php -filen
Vi ser etter kodelinjene:
// Vi endrer navnet på nettet My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' => 'navbar-invers navbar-fixed-top',],]); 'brandLabel' => 'Mitt firma', Vi bytter til 'brandLabel' => 'Min Yii-demo', // Hvis jeg er logget inn, viser jeg lenken Logg inn hvis (Yii :: $ app-> user-> isGuest) {$ menuItems [] = ['label' => 'Login', 'url' => [' / site / login']]; } annet {// Hvis jeg ikke er det, vil jeg vise andre lenker i menyen $ menuItems [] = ['label' => 'Logg ut ('. Yii :: $ app-> bruker-> identitet-> brukernavn. ' ) ',' url '=> [' / site / logout '],' linkOptions '=> [' data-method '=>' post ']]; }Her bytter vi bruker
'label' => 'Logg ut ('. Yii :: $ app-> bruker-> identitet-> brukernavn. ')',Vi endrer for brukerfeltet vårt
'label' => 'Logg ut ('. Yii :: $ app-> bruker-> identitet-> bruker. ')',Til slutt kan vi logge inn:
http: // localhost / pro … mo / backend / web /
- Bruker admin
- Nøkkel admin
FORSTØRRE
Hovedsiden er endret fra \ backend \ views \ site.I en annen opplæring vil vi se hvordan du endrer utformingen av hovedsiden, lager menyer, kobler sider og legger til funksjoner. Vær oppmerksom og følg meg hvis du er interessert.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng