{"id":294,"date":"2016-04-18T09:46:10","date_gmt":"2016-04-18T08:46:10","guid":{"rendered":"http:\/\/blog.bellanca-web.com\/?p=294"},"modified":"2016-04-18T13:30:45","modified_gmt":"2016-04-18T12:30:45","slug":"parametrage-du-framework","status":"publish","type":"post","link":"https:\/\/blog.bellanca-web.com\/?p=294","title":{"rendered":"Param\u00e9trage du framework"},"content":{"rendered":"<h1>Le fichier bootstrap<\/h1>\n<p>Le bootstrap est le fichier par lequel toutes les requ\u00eates vous passer et c&rsquo;est lui qui va \u00ab\u00a0orchestrer\u00a0\u00bb l&rsquo;application. Sur Yii2, c&rsquo;est le fichier index.php du r\u00e9pertoire de l&rsquo;application. Voici son contenu \u00e0 la cr\u00e9ation d&rsquo;un site \u00ab\u00a0basic\u00a0\u00bb avec Composer :<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n\r\n\/\/ comment out the following two lines when deployed to production\r\ndefined('YII_DEBUG') or define('YII_DEBUG', true);\r\ndefined('YII_ENV') or define('YII_ENV', 'dev');\r\n\r\nrequire(__DIR__ . '\/..\/vendor\/autoload.php');\r\nrequire(__DIR__ . '\/..\/vendor\/yiisoft\/yii2\/Yii.php');\r\n\r\n$config = require(__DIR__ . '\/..\/config\/web.php');\r\n\r\n(new yii\\web\\Application($config))-&gt;run();<\/pre>\n<p>La modification principale \u00e0 faire dans ce fichier est de d\u00e9finir le chemin d&rsquo;acc\u00e8s aux fichiers du framework. Par exemple, si les fichiers de mon serveur doivent \u00eatre dans le r\u00e9pertoire \/httpdocs\/, je d\u00e9place le contenu du r\u00e9pertoire web\/ dedans et je cr\u00e9er un r\u00e9pertoire \/yii2\/ dans lequel je d\u00e9place le reste des fichiers. En imaginant l&rsquo;arborescence suivante :<\/p>\n<blockquote><p>\/<\/p>\n<p>httpdocs\/<\/p>\n<p>yii2\/<\/p><\/blockquote>\n<p>le fichier bootstrap devra \u00eatre modifi\u00e9 en comme suite :<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n\r\n\/\/ comment out the following two lines when deployed to production\r\ndefined('YII_DEBUG') or define('YII_DEBUG', true);\r\ndefined('YII_ENV') or define('YII_ENV', 'dev');\r\n\r\nrequire(__DIR__ . '\/..\/yii2\/vendor\/autoload.php');\r\nrequire(__DIR__ . '\/..\/yii2\/vendor\/yiisoft\/yii2\/Yii.php');\r\n\r\n$config = require(__DIR__ . '\/..\/yii2\/config\/web.php');\r\n\r\n(new yii\\web\\Application($config))-&gt;run();<\/pre>\n<h2>Mise en production<\/h2>\n<p>Le de la mise en production, il faut d\u00e9sactiver le mode debug, pour ce faire, il faut remplacer la ligne<\/p>\n<pre class=\"lang:default decode:true\">defined('YII_DEBUG') or define('YII_DEBUG', true);<\/pre>\n<p>par<\/p>\n<pre class=\"lang:default decode:true\">defined('YII_DEBUG') or define('YII_DEBUG', false);<\/pre>\n<h1>Configuration du site &#8211; web.php<\/h1>\n<p>Le fichier web.php contient un grand nombre de donn\u00e9es de configuration du site. Il se trouve dans le r\u00e9pertoire config\/ du framework.<\/p>\n<h2>Routage<\/h2>\n<p>Par d\u00e9faut, les URL du site sont sous la forme suivante :<\/p>\n<blockquote><p>http:\/\/exemple.com\/index.php?r=site\/login<\/p><\/blockquote>\n<p>Il est possible de param\u00e9trer le site afin d&rsquo;obtenir une URL \u00ab\u00a0propre sans le \u00ab\u00a0index.php\u00a0\u00bb :<\/p>\n<blockquote><p>http:\/\/exemple.com\/site\/login\/<\/p><\/blockquote>\n<p>Pour ce faire, il faut commencer par activer <strong>PrettyUrl<\/strong> dans le fichier de configuration et cacher le fichier du bootstrap avec <strong>showScriptName<\/strong> :<\/p>\n<pre class=\"lang:default decode:true\">$config = [\r\n    'id' =&gt; 'basic',\r\n    'basePath' =&gt; dirname(__DIR__),\r\n    'bootstrap' =&gt; ['log'],\r\n    'components' =&gt; [\r\n\t    \/\/ divers composants\r\n        'db' =&gt; require(__DIR__ . '\/db.php'),\r\n        'urlManager' =&gt; [\r\n            'enablePrettyUrl' =&gt; true,\r\n            'showScriptName' =&gt; false,\r\n            'rules' =&gt; [\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ],\r\n        ]\r\n    ],\r\n    'params' =&gt; $params,    \r\n];<\/pre>\n<p>Pour ne pas avoir une erreur 404, il faut maintenant cr\u00e9er un fichier .htaccess contenant les donn\u00e9es suivantes :<\/p>\n<pre class=\"lang:default decode:true \">&lt;IfModule mod_rewrite.c&gt;\r\n  RewriteEngine on\r\n\u00a0 # A decommenter et changer pour correspondre \u00e0 l'URL de base:\r\n\u00a0 # RewriteBase \/\r\n  # Si un repertoire ou un fichier existe, utiliser directement la requete:\r\n  RewriteCond %{REQUEST_FILENAME} !-f\r\n  RewriteCond %{REQUEST_FILENAME} !-d\r\n  # Sinon, transmettre la requete a index.php:\r\n  RewriteRule . index.php\r\n&lt;\/IfModule&gt;<\/pre>\n<h2>Gii<\/h2>\n<p>Gii est un g\u00e9n\u00e9rateur de code pour Yii2 qui permet de g\u00e9n\u00e9rer tr\u00e8s rapidement des pages utilisables (par exemple, du CRUD sur la base de tables de base de donn\u00e9es).<\/p>\n<p>Par d\u00e9faut, Gii est automatiquement charg\u00e9 avec l&rsquo;application <strong>basic<\/strong> charg\u00e9e via Composer :<\/p>\n<pre class=\"lang:default decode:true \">if (YII_ENV_DEV) {\r\n    \/\/ configuration adjustments for 'dev' environment\r\n    $config['bootstrap'][] = 'debug';\r\n    $config['modules']['debug'] = 'yii\\debug\\Module';\r\n\r\n    $config['bootstrap'][] = 'gii';\r\n    \/\/$config['modules']['gii'] = 'yii\\gii\\Module';\r\n    $config['modules']['gii'] = [\r\n    \t'class' =&gt; 'yii\\gii\\Module',\r\n    \t\/\/'allowedIPs' =&gt; ['*']\r\n    ];\r\n}<\/pre>\n<p>Gii est accessible par l&rsquo;adresse \u00ab\u00a0propre\u00a0\u00bb (uniquement en local et sur un environnement de d\u00e9veloppement) :<\/p>\n<blockquote><p>http:\/\/exemple.com\/gii\/<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h1>Base de donn\u00e9es &#8211; db.php<\/h1>\n<p>Le fichier db.php contient les donn\u00e9es de configuration de base de donn\u00e9es. Il se trouve dans le r\u00e9pertoire config\/ du framework.<\/p>\n<p>Il suffit de param\u00e9trer le fichier avec les bonnes donn\u00e9es :<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n\r\nreturn [\r\n    'class' =&gt; 'yii\\db\\Connection',\r\n    'dsn' =&gt; 'mysql:host=localhost;dbname=nomDB',\r\n    'username' =&gt; 'nomUtilisateurDb',\r\n    'password' =&gt; 'motDePasse',\r\n    'charset' =&gt; 'utf8',\r\n];<\/pre>\n<h1>Variables du site &#8211; params.php<\/h1>\n<p><span style=\"color: #ff0000;\">A compl\u00e9ter&#8230;<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le fichier bootstrap Le bootstrap est le fichier par lequel toutes les requ\u00eates vous passer et c&rsquo;est lui qui va \u00ab\u00a0orchestrer\u00a0\u00bb l&rsquo;application. Sur Yii2, c&rsquo;est le fichier index.php du r\u00e9pertoire de l&rsquo;application. Voici son contenu \u00e0 la cr\u00e9ation d&rsquo;un site \u00ab\u00a0basic\u00a0\u00bb avec Composer : &lt;?php \/\/ comment out the following two lines when deployed to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.bellanca-web.com\/?p=294\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Param\u00e9trage du framework&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,31],"tags":[],"class_list":["post-294","post","type-post","status-publish","format-standard","hentry","category-php","category-yii2"],"_links":{"self":[{"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=\/wp\/v2\/posts\/294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=294"}],"version-history":[{"count":11,"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=\/wp\/v2\/posts\/294\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=\/wp\/v2\/posts\/294\/revisions\/306"}],"wp:attachment":[{"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bellanca-web.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}