Paramétrage du framework

Le fichier bootstrap

Le bootstrap est le fichier par lequel toutes les requêtes vous passer et c’est lui qui va « orchestrer » l’application. Sur Yii2, c’est le fichier index.php du répertoire de l’application. Voici son contenu à la création d’un site « basic » avec Composer :

<?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');

(new yii\web\Application($config))->run();

La modification principale à faire dans ce fichier est de définir le chemin d’accès aux fichiers du framework. Par exemple, si les fichiers de mon serveur doivent être dans le répertoire /httpdocs/, je déplace le contenu du répertoire web/ dedans et je créer un répertoire /yii2/ dans lequel je déplace le reste des fichiers. En imaginant l’arborescence suivante :

/

httpdocs/

yii2/

le fichier bootstrap devra être modifié en comme suite :

<?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../yii2/vendor/autoload.php');
require(__DIR__ . '/../yii2/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../yii2/config/web.php');

(new yii\web\Application($config))->run();

Mise en production

Le de la mise en production, il faut désactiver le mode debug, pour ce faire, il faut remplacer la ligne

defined('YII_DEBUG') or define('YII_DEBUG', true);

par

defined('YII_DEBUG') or define('YII_DEBUG', false);

Configuration du site – web.php

Le fichier web.php contient un grand nombre de données de configuration du site. Il se trouve dans le répertoire config/ du framework.

Routage

Par défaut, les URL du site sont sous la forme suivante :

http://exemple.com/index.php?r=site/login

Il est possible de paramétrer le site afin d’obtenir une URL « propre sans le « index.php » :

http://exemple.com/site/login/

Pour ce faire, il faut commencer par activer PrettyUrl dans le fichier de configuration et cacher le fichier du bootstrap avec showScriptName :

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
	    // divers composants
        'db' => require(__DIR__ . '/db.php'),
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],
        ]
    ],
    'params' => $params,    
];

Pour ne pas avoir une erreur 404, il faut maintenant créer un fichier .htaccess contenant les données suivantes :

<IfModule mod_rewrite.c>
  RewriteEngine on
  # A decommenter et changer pour correspondre à l'URL de base:
  # RewriteBase /
  # Si un repertoire ou un fichier existe, utiliser directement la requete:
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  # Sinon, transmettre la requete a index.php:
  RewriteRule . index.php
</IfModule>

Gii

Gii est un générateur de code pour Yii2 qui permet de générer très rapidement des pages utilisables (par exemple, du CRUD sur la base de tables de base de données).

Par défaut, Gii est automatiquement chargé avec l’application basic chargée via Composer :

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = 'yii\debug\Module';

    $config['bootstrap'][] = 'gii';
    //$config['modules']['gii'] = 'yii\gii\Module';
    $config['modules']['gii'] = [
    	'class' => 'yii\gii\Module',
    	//'allowedIPs' => ['*']
    ];
}

Gii est accessible par l’adresse « propre » (uniquement en local et sur un environnement de développement) :

http://exemple.com/gii/

 

Base de données – db.php

Le fichier db.php contient les données de configuration de base de données. Il se trouve dans le répertoire config/ du framework.

Il suffit de paramétrer le fichier avec les bonnes données :

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=nomDB',
    'username' => 'nomUtilisateurDb',
    'password' => 'motDePasse',
    'charset' => 'utf8',
];

Variables du site – params.php

A compléter…