Table des matières
Yii est un cadre écrit en php pour rendre le développement d'applications web d'entreprise plus agile et standard. Son architecture basée sur des composants, est très adaptée au développement d'applications qui doivent supporter beaucoup de trafic, qui nécessitent des méthodes de développement standard et bien documentées, ce framework est utilisé pour toute application web telle que portails, systèmes de gestion d'entreprise, gestion de contenu systèmes (CMS), sites de commerce électronique.Certaines fonctionnalités par rapport à d'autres frameworks
Utiliser le modèle MVC (Modèle / Vue / Contrôleur)Contrairement à d'autres frameworks, il sépare chaque composant dans des dossiers pour un meilleur ordre et une meilleure maintenance.
- Génération de code : Yii peut générer du code CRUD à partir d'une table de base de données, créant les requêtes, les listes et les formulaires.
- Prise en charge intégrée des frameworks jQuery et Bootstrap
- Méthodes de contrôle d'accès intégrées pour l'authentification et l'autorisation des rôles
- Il intègre un système de sécurité et de prévention des attaques externe au web.
- Prend en charge les widgets et les extensions développés par la communauté
- Prend en charge l'utilisation de modèles de conception
Installation du cadre Yii
Il existe deux versions de Yii, une Basic et une Advanced. Dans la version de base, les fichiers utilisateur et les fichiers administrateur sont réunis, dans la version avancée, ils sont séparés en deux dossiers en tant que systèmes indépendants L'extrémité avant Oui Back-end
Pour installer Yii 2.0, nous devons télécharger les fichiers du site Web Yii Framework 2.0 à partir de l'url suivante Yii 2.0 Basic et Yii 2.0 Advanced.
Une fois téléchargé, nous décompressons le fichier et copions le dossier avancé sur notre serveur local et le renommons avec le nom de notre projet Web, dans ce cas nous l'appelons yiidemo.
Ensuite, à partir du terminal, nous devons installer les fichiers de la structure du Web pour cela, nous exécutons ce qui suit :
initialisation sudo phpIl nous demandera si nous voulons l'exécuter en mode Développement ou Production, nous choisirons Développement puis confirmerons, ainsi toute la structure par défaut nécessaire sera copiée.
Si nous allons dans le dossier web yiidemo, nous verrons que plusieurs dossiers ont été installés et les deux qui contiendront les fichiers web backend pour l'administrateur et frontend pour le web public.
Nous pouvons voir le Backend dans un navigateur à partir de l'url :
http://localhost/yiidemo/backend/web/
Nous pouvons également voir le modèle d'accueil :
http://localhost/yiidemo/frontend/web/
AGRANDIR
Comme nous pouvons le voir, il contient quelques exemples de pages mais la connexion ou l'enregistrement de l'utilisateur ne sont pas fonctionnels car ils ne se connectent à aucune base de données, mais ils servent de base de code pour commencer, la conception est également réactive.Ensuite, nous allons créer la base de données à partir de phpmyadmin que nous nommerons yiidemodb.
La table pour l'administrateur aura la structure suivante
- Structure de la table `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) ENGINE = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = latin1; - - Dump des données pour la table `administrator` - INSERT INTO` administrator` (`id`,` user`, `password`,` email`) VALUES (1, 'admin', 'admin', ' [email protected] '); Ensuite, nous devrons configurer pour lier la base de données avec Yii pour cela nous allons dans le dossier /common/config et ouvrons le fichier main_local.php, voici les configurations communes pour le backend et le frontend 'yii\db\Connection ', 'dsn '=>' mysql: host = localhost; dbname = yiidemodb ',' username '=>' root ',' password '=>' ',' charset '=>' utf8 ',]; ?> var13 ->Ensuite nous devrons créer le modèle, le contrôleur et la vue de l'administrateur, pour cela nous utiliserons l'URL : http:// localhost / yii… index.php?R = gii
Après avoir défini la table dans laquelle nous voulons générer le modèle, cliquez sur le bouton Aperçu pour voir à quoi ressemblerait le fichier, puis sur Générer pour générer le code.
Ensuite, nous allons au générateur Crud pour créer le code et la vue, le contrôleur et les fonctionnalités minimales pour interagir avec la table. CRUD est l'acronyme de Créer, Obtenir, Mettre à jour et Supprimer.
Dans le crud nous devrons définir les routes du modèle et le contrôleur qui sera créé, nous pouvons également ajouter un modèle pour les recherches.
Classe de modèle : backend \ modèles \ Administrateur
Classe de modèle de recherche : backend \ models \ Administrator \ Administrator Search
Classe de contrôleur : backend \ contrôleurs \ AdministratorController
Ensuite, nous appuyons sur Aperçu et Générer
Ensuite, nous pouvons tester le crud que nous générons à partir de l'url suivante
http: // localhost / yii… r = administrateur
Ensuite, nous allons dans le dossier \ backend \ config et ouvrons le fichier main.php, où nous modifierons la ligne de code suivante :
'identityClass' => 'common \ models \ User'Nous changeons pour notre modèle d'administrateur
'identityClass' => backend \ models \ AdministratorNous indiquons que pour nous connecter au backend, nous utiliserons le modèle Administrateur trouvé dans le chemin spécifié.
Ensuite, nous allons dans le dossier common \ models et copions le fichier LoginForm.php dans le dossier backend \ models, de cette manière nous séparons le login qui est sous forme commune pour le backend et le frontend.
Le contrôleur qui invoque le login est SiteController.php.php, il faut ouvrir le fichier et modifier la ligne :
utiliser common \ models \ LoginForm;Par la ligne :
utilisez le backend \ models \ LoginForm;De cette façon, lorsque le formulaire est envoyé, il recherchera LoginForm.php dans backend \ modèles \ Administrateur comme nous le définissons ci-dessus.
Ensuite, nous devons modifier le LoginForm pour l'adapter au modèle administrateur comme suit :
getUser (); if (! $ user ||! $ user-> validatePassword ($ this-> password)) {$ this-> addError ($ attribut, 'Nom d'utilisateur ou mot de passe incorrect.'); }} fonction publique login () {if ($ this-> validate ()) {echo 'hello'; return Yii :: $ app-> user-> login ($ this-> getUser (), $ this-> RememberMe? 3600 * 24 * 30: 0); } else {retourner faux; }} // fonction qui recherche un utilisateur par son nom d'utilisateur fonction protégée getUser () {if ($ this -> _ user === null) {// s'il existe il obtient un tableau avec toutes les données $ this -> _ user = Administrator :: findByUsername ($ this-> username); } renvoie $ this -> _ user; }} ?> var13 ->Ensuite, nous modifions le modèle Administrateur généré et nous ajouterons IdentitéInterface qui est une classe qui fournit diverses fonctionnalités de sécurité avancées pour le contrôle d'accès. Dans ce cas notre exemple est simple mais nous devons les faire implémenter même si nous ne les utilisons pas.
50], [['email'], 'string', 'max' => 100]]; } // Champs de la table public function attributeLabels () {return ['id' => 'ID', 'user' => 'User', 'password' => 'Password', 'email' => 'Email' ,]; } // fonction prédéfinie dans IdentityInterface pour rechercher l'utilisateur par son nom public static function findByUsername ($ username) {return static :: findOne (['user' => $ username]); } / fonction prédéfinie dans IdentityInterface pour rechercher la clé public function validatePassword ($ password) {return static :: findOne (['key' => $ password]); } // fonction prédéfinie dans IdentityInterface pour rechercher l'utilisateur par identifiant public static function findIdentity ($ id) {return static :: findOne ($ id); } // fonction prédéfinie dans IdentityInterface pour rechercher l'utilisateur par marqueur ou jeton public static function findIdentityByAccessToken ($ token, $ type = null) {// return static :: findOne (['access_token' => $ token]); } // Renvoie l'ID utilisateur public function getId () {return $ this-> id; } // Retourne une clé qui peut être utilisée pour vérifier la validité d'un ID public function getAuthKey() {// return $ this-> auth_key; } // Valide la clé retournée par la fonction précédente. public function validateAuthKey ($ authKey) {// return $ this-> getAuthKey () === $ authKey; }}Ensuite, nous devons changer la mise en page dans le backend \ view \ layout, nous ouvrons le fichier main.php
On cherche les lignes de code :
// On modifie le nom du web My Company NavBar :: begin (['brandLabel' => 'My Company', 'brandUrl' => Yii :: $ app-> homeUrl, 'options' => ['class' = > 'barre de navigation-barre de navigation inverse-top fixe',],]); 'brandLabel' => 'My Company', On change en 'brandLabel' => 'My Yii Demo', // Si je suis connecté j'affiche le lien Login if (Yii :: $ app-> user-> isGuest) {$ menuItems [ ] = ['label' => 'Login', 'url' => ['/ site / login']]; } else {// Si je ne le suis pas, j'afficherai d'autres liens dans le menu $ menuItems [] = ['label' => 'Logout ('. Yii :: $ app-> user-> identity-> username. ' )', ' url '=> [' / site / logout '],' linkOptions' => ['data-method' => 'post']]; }Ici on change l'utilisateur
'label' => 'Logout ('. Yii :: $ app-> user-> identity-> username. ')',Nous changeons pour notre champ utilisateur
'label' => 'Logout ('. Yii :: $ app-> user-> identity-> user. ')',Enfin, nous pouvons nous connecter :
http://localhost/pro…mo/backend/web/
- Utilisateur administrateur
- mot de passe administrateur
AGRANDIR
La page principale est modifiée de \ backend \ vues \ site.Dans un autre tutoriel, nous verrons comment modifier le design de la page principale, créer des menus, lier des pages et ajouter des fonctionnalités. Soyez attentif et suivez-moi si vous êtes intéressé.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif