La passion du libre

Le guide complet de Yii 2 (traduction du guide officiel)

Cliquez sur le bouton pour afficher les conseils de lecture.Cliquez à nouveau pour les masquer

Fenêtres surgissantes explicatives

Certains mots dans le texte, affichés en vert et en gras, sont précédés d'une étoile verte sur fond orange. Par exemple, ce mot : lien.

Si vous placez le pointeur de la souris sur un tel mot, une fenêtre surgissante – popup – s'ouvre alors que l'affichage du reste du documment s'atténue. Cette fenêtre contient une explication détaillée du mot en question

Une fois que vous avez pris connaissance de ce que vous affiche cette fenêtre surgissante, vous pouvez retourner à l'état normal en cliquant ailleurs dans le document.

Navigation

Pour naviguer, utilisez le menu vertical à gauche du texte. Les entrées de menu marquées d'une petite flèche vers le bas ouvrent un sous-menu lorsqu'on clique dessus.

Vous pouvez également choisir une lecture continue en cliquant sur un des liens proposés en bas de page.

Installation

Exigences

L'exigence minimum de ce modèle de projet est que votre serveur Web prenne en charge PHP 5.4.0.

Installation via Composer

Si vous n'avez pas Composer, suivez les instructions de la section Installation de Yii du guide complet de Yii pour l'installer.

Une fois composer installé, vous pouvez l'utiliser pour installer l'application en utilisant les commandes suivantes :

composer global require "fxp/composer-asset-plugin:^1.2.0"
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

La première commande installe le greffon composer asset qui permet de gérer les dépendances de paquets bower et npm via Composer. Vous n'avez besoin d'exécuter cette commande qu'une fois pour toute. La deuxième commande installe l'application avancée dans un dossier nommé yii-application. Vous avez le droit de choisir un autre nom de dossier si vous le désirez.

Installation à partir d'un fichier archive

Extrayez l'archive que vous avez téléchargée depuis yiiframework.com dans un dossier nommé advanced placé directement sous la racine Web.

Ensuite suivez les instructions données dans la sous-section suivante.

Préparation de l'application

Après que vous avez installé l'application, vous devez accomplir les étapes suivantes pour initialiser l'application installée. Vous n'avez à faire cela qu'une fois pour toute.

  1. Ouvrez un terminal et exécutez la commande init et sélectionnez dev en tant qu'environnement.

    /path/to/php-bin/php /path/to/yii-application/init
    

    Si vous l'automatisez à l'aide d'un script, vous pouvez exécuter init en mode non interactif.

    /path/to/php-bin/php /path/to/yii-application/init --env=Production --overwrite=All
    
  2. Créez une nouvelle base de données et complétez la configuration de components['db'] dans common/config/main-local.php en conséquence.

  3. Ouvrez un terminal, appliquez les migrations avec la commande /path/to/php-bin/php /path/to/yii-application/yii migrate.

  4. Définissez la racine du document de votre serveur Web :

  • pour l'interface utilisateur (frontend) /path/to/yii-application/frontend/web/, en utilisant l'URL http://frontend.dev/
  • pour l'interface d'administration (backend) /path/to/yii-application/backend/web/, en utilisant URL http://backend.dev/

    Avec le serveur Apache ça pourrait ressembler à ceci :

       <VirtualHost *:80>
           ServerName frontend.dev
           DocumentRoot "/path/to/yii-application/frontend/web/"
    
           <Directory "/path/to/yii-application/frontend/web/">
               # use mod_rewrite for pretty URL support
               RewriteEngine on
               # If a directory or a file exists, use the request directly
               RewriteCond %{REQUEST_FILENAME} !-f
               RewriteCond %{REQUEST_FILENAME} !-d
               # Otherwise forward the request to index.php
               RewriteRule . index.php
    
               # use index.php as index file
               DirectoryIndex index.php
    
               # ...other settings...
               # Apache 2.4
               Require all granted
    
               ## Apache 2.2
               # Order allow,deny
               # Allow from all
           </Directory>
       </VirtualHost>
    
       <VirtualHost *:80>
           ServerName backend.dev
           DocumentRoot "/path/to/yii-application/backend/web/"
    
           <Directory "/path/to/yii-application/backend/web/">
               # use mod_rewrite for pretty URL support
               RewriteEngine on
               # If a directory or a file exists, use the request directly
               RewriteCond %{REQUEST_FILENAME} !-f
               RewriteCond %{REQUEST_FILENAME} !-d
               # Otherwise forward the request to index.php
               RewriteRule . index.php
    
               # use index.php as index file
               DirectoryIndex index.php
    
               # ...other settings...
               # Apache 2.4
               Require all granted
    
               ## Apache 2.2
               # Order allow,deny
               # Allow from all
           </Directory>
       </VirtualHost>
    

    Avec le serveur nginx:

       server {
           charset utf-8;
           client_max_body_size 128M;
    
           listen 80; ## listen for ipv4
           #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
    
           server_name frontend.dev;
           root        /path/to/yii-application/frontend/web/;
           index       index.php;
    
           access_log  /path/to/yii-application/log/frontend-access.log;
           error_log   /path/to/yii-application/log/frontend-error.log;
    
           location / {
               # Redirect everything that isn't a real file to index.php
               try_files $uri $uri/ /index.php$is_args$args;
           }
    
           # uncomment to avoid processing of calls to non-existing static files by Yii
           #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
           #    try_files $uri =404;
           #}
           #error_page 404 /404.html;
    
           # deny accessing php files for the /assets directory
           location ~ ^/assets/.*\.php$ {
               deny all;
           }
    
           location ~ \.php$ {
               include fastcgi_params;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_pass 127.0.0.1:9000;
               #fastcgi_pass unix:/var/run/php5-fpm.sock;
               try_files $uri =404;
           }
    
           location ~* /\. {
               deny all;
           }
       }
    
       server {
           charset utf-8;
           client_max_body_size 128M;
    
           listen 80; ## listen for ipv4
           #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
    
           server_name backend.dev;
           root        /path/to/yii-application/backend/web/;
           index       index.php;
    
           access_log  /path/to/yii-application/log/backend-access.log;
           error_log   /path/to/yii-application/log/backend-error.log;
    
           location / {
               # Redirect everything that isn't a real file to index.php
               try_files $uri $uri/ /index.php$is_args$args;
           }
    
           # uncomment to avoid processing of calls to non-existing static files by Yii
           #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
           #    try_files $uri =404;
           #}
           #error_page 404 /404.html;
    
           # deny accessing php files for the /assets directory
           location ~ ^/assets/.*\.php$ {
               deny all;
           }
    
           location ~ \.php$ {
               include fastcgi_params;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_pass 127.0.0.1:9000;
               #fastcgi_pass unix:/var/run/php5-fpm.sock;
               try_files $uri =404;
           }
    
           location ~* /\. {
               deny all;
           }
       }
    
  1. Modifier le fichier hosts pour qu'il pointe sur le domaine ad hoc.
  • Windows: c:\Windows\System32\Drivers\etc\hosts
  • Linux: /etc/hosts

    Ajoutez les lignes suivantes :

    127.0.0.1   frontend.dev
    127.0.0.1   backend.dev
    

Pour vous connecter à l'application, vous devez d'abord vous enregistrer avec votre adresse électronique, votre nom d'utilisateur et votre mot de passe. Ensuite, vous pouvez utiliser cet adresse électronique et ce mot de passe à tout moment.

Note : si vous voulez utiliser le modèle avancé sur un domaine unique de manière à ce que / soit l'interface utilisateur et /admin l'interface d'administration, reportez-vous à Utilisation du modèle de projet avancé sur un hébergement partagé.

Installation en utilisant Vagrant

C'est la manière la plus facile mais elle prend du temps (~20 min).

Cette façon d'installer ne nécessite pas de logiciel pré-installé (comme un serveur Web, PHP, MySQL, etc.) - contentez-vous d'accomplir les étapes suivantes !

Manuel pour les utilisateurs de Linux/Unix

  1. Installez VirtualBox
  2. Installez Vagrant
  3. Créez un jeton d'API personnel sur GitHub
  4. Préparez le projet:

    git clone https://github.com/yiisoft/yii2-app-advanced.git
    cd yii2-app-advanced/vagrant/config
    cp vagrant-local.example.yml vagrant-local.yml
    
  5. Placez votre jeton personnel d'API GitHub dans vagrant-local.yml

  6. Placez-vous (cd) sur la racine du projet :

    cd yii2-app-advanced
    
  7. Exécutez les commandes suivantes :

    vagrant plugin install vagrant-hostmanager
    vagrant up
    

C'est tout. Il ne vous reste plus qu'à attendre la fin de l'exécution ! Après cela, vous pouvez accéder au projet localement par les URL : * pour l'interface utilisateur : http://y2aa-frontend.dev * pour l'interface d'administration : http://y2aa-backend.dev

Manuel pour les utilisateurs de Windows

  1. Installez VirtualBox
  2. Installez Vagrant
  3. Redémarrez.
  4. Créez un jeton d'API personnel sur GitHub
  5. Préparez le projet :

    • téléchargez le dépôt yii2-app-advanced
    • décompressez-le avec unzip
    • placez-vous dans le dossier yii2-app-advanced-master/vagrant/config
    • copiez vagrant-local.example.yml vers vagrant-local.yml
  6. Placez votre jeton personnel d'API GitHub dans vagrant-local.yml

  7. Ajoutez les lignes suivantes dans le fichier hosts:

    192.168.83.137 y2aa-frontend.dev
    192.168.83.137 y2aa-backend.dev
    
  8. Ouvrez un terminal (cmd.exe), placez-vous à la racine du projet et exécutez les commandes :

    vagrant plugin install vagrant-hostmanager
    vagrant up
    

    (Vous pouvez apprendre comment changer de dossier dans l'interpréteur de commande en lisant ceci)

C'est tout. Il ne vous reste qu'à attendre la fin de l'exécution ! Après cela, vous pouvez accéder au projet localement par les URL : * pour l'interface utilisateur : http://y2aa-frontend.dev * pour l'interface d'administration : http://y2aa-backend.dev