Hey Jonathan, c'est quoi Yii ? Une marque de bière nippone ?
Yii est un framework PHP performant et modulaire qui permet de développer rapidement des applications Web modernes. Le nom Yii signifie « simple et évolutif » en chinois. Il peut également être considéré comme un acronyme pour Yes It is!
Personnellement, j'utilise Yii depuis sa version 1.1.x pour faire des proofs of concept (POC pour les intimes). Totalement satisfait de mon expérience j’ai décidé de baser de vrai projet sur la version 2.0 du framework qui est une entière réécriture de la première mouture.
Et Yii 2.0 alors, ça permet de faire quoi au juste ? Je vais éviter de paraphraser le guide fourni avec le framework (je déteste la duplication de code inutile) alors : https://www.yiiframework.com/doc/guide/2.0/en/intro-yii
Pour ma part voici - entre autres - ce qui m'a séduit dans Yii :Mais revenons à nos moutons avec cet article où je vais vous présenter ma manière de déployer, d’installer le framework sur un environnement nomade (clé usb, ou simplement sans utiliser d'installeur) de type Windows.
Installer un package de type Windows, Apache, MySQL, PHP and/or Perl
(WAMP). Celui-ci devra avoir PHP en version 5.4.0 ou supérieur : le
validateur de Yii vous indiquera ensuite, si besoin, ce qu’il vous
manquera en terme de librairie. Préférer du PHP 7.2 minimum quand même... Ca ne mange pas de pain ;)
Pour ma part, j’utilise du XAMPP portable : https://www.apachefriends.org/fr/index.html
Composer est un outil de gestion de la dépendance pour PHP. Il vous permet de déclarer les bibliothèques dont votre projet a besoin et va les installer pour vous. Utiliser Composer est la manière "recommandée" d'installer le Yii framework (et ses extensions). Instruction ici : https://getcomposer.org/doc/00-intro.md#installation-windows
Je vais vous laisser l'installation automatique et vais plutôt vous
décrire le déploiement manuel afin de l’installer sur clé usb. Je n’ai
bien sûr pas PHP dans mon path (xampp sur clé usb) et n'ai pas fait de
scripts .bat pour faire joliment les choses (je souis oune barbare) mais
n’hésitez pas à vous faciliter la vie (set
path=%path%;e:\xampp\php\
).
cd E:\xampp\php>
php -r "readfile('https://getcomposer.org/installer');" | php
Warning: readfile(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1
Warning: readfile(https://getcomposer.org/installer): failed to open stream: Invalid argument in Command line code on line 1
Exécutez plutôt (via http) :
php -r "readfile('http://getcomposer.org/installer');" | php
Notez que vous pouvez aussi activer php_openssl.dll dans votre php.ini
ca devrait résoudre le problème.
Créons maintenant le composer.bat basé sur le composer.phar généré
précédemment :
E:\xampp\php>echo @php "%~dp0composer.phar" %*>composer.bat
Plus qu’à tester dans la console (potentiellement il faut fermer et rouvrir la console) :
E:\xampp\php>composer -V
Composer version 1.0-dev (a309e1d89ded6919935a842faeaed8e888fbfe37) 2014-10-20 19:16:14
Maintenant que nous avons Composer, nous allons pouvoir déployer une
application Yii. Il existe actuellement deux templates "officiels" de
création de squelettes d’application Yii :
Une version basique : https://www.yiiframework.com/doc/guide/2.0/en/start-installation
Une version avancée : https://www.yiiframework.com/extension/yiisoft/yii2-app-advanced/doc/guide/2.0/en
Cette dernière permet de gérer un frontend et un backend distinct,
possiblement déployable sur des serveurs différents. Ce template contient
aussi quelques fonctionnalités prêtes à l’emploi telles que la gestion des
enregistrements des utilisateurs, la restauration de password et autres
subtilités. C'est l'installation de ce dernier template que je vais
décrire ici, car... qui peut le plus peut le moins.
Note : Les chemins de mes exécutables sont écrits en l'état puisque je
n'ajoute pas "exprès" pour ce tutoriel, mes exécutables dans le path et
que je n’ai pas créer de setter.bat tout prêt,
composer global require "fxp/composer-asset-plugin:~1.1.1"
composer create-project --prefer-dist yiisoft/yii2-app-advanced ../htdocs/my-yii-application
Le script vous demandera vos identifiants github au cours de l’installation. Si vous n’avez pas de compte github, pensez à vous en créer un ^^ (sinon de mémoire il ira quand même prendre les packages de release chez packagist mais bon...)
E:\xampp\php>php ..\htdocs\my-yii-application\init
Renseigner 0 pour développement puis confirmer.
Via votre XAMPP, lancez votre configurateur de base de données (chez moi
phpMyAdmin) et créez une base de données dédiée. Puis éditez my-yii-application/common/config/main-local.php
et renseignez-y vos informations de connexion.
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=toto',
'username' => 'root',
'password' => 'xxx',
'charset' => 'utf8',
'tablePrefix' => 'xyz_',
],
Les tables automatiquement créées par Yii dans l'étape suivante
seront alors préfixées par "xyz_", et cela indique à l'application dans sa
globalité que toutes les tables que vous créez vous même sont préfixés. Vous
pourrez alors utiliser le nom des tables sans prefix dans votre code :
{{tablename}}.Se placer dans le répertoire du projet et lancer : yii migrate
Note : si comme moi vous n’avez pas PHP dans votre path, éditez yii.bat
du répertoire pour mettre le chemin relatif de php.exe (ex : ../../php/php.exe
)
Si tout va bien vous avez un joli message à l’écran : Migrated up
successfully
Normalement en lançant votre environnement XAMPP (si ce n’est pas déjà
fait) vous pouvez maintenant accéder aux deux parties de votre applicatif
via les URL suivantes :
Frontend : http://localhost/my-yii-application/frontend/web
Backend : http://localhost/my-yii-application/backend/web
Et voilà, vous êtes maintenant prêt (et moi aussi) à bâtir une application complexe à l’aide de ce superbe framework.
Ce qui est bien aussi avec Yii c’est que le templating est autorisé et même encouragé. Personnellement, je n’utilise pas le template de base mais celui de Nenad (https://github.com/nenad-zivkovic/yii2-advanced-template). Pourquoi ? Et bien parce qu’il dispose de quelques particularités qui m’interessaient comme le déploiement sur hébergement mutualisé simplifié ou une gestion des rôles bien plus poussés que les templates de base. Par contre, il n'est plus maintenu :'(.
Plus de détails :
https://www.yiiframework.com/extension/yii2-improved-advanced-template/
environnements/dev/common/config
et environnements/dev/common/config
.
Il suffira alors de jouer les commandes :
PRODUCTION : php /path/to/yii-application/init --env=Production overwrite=All
DEVELOPPEMENT : php /path/to/yii-application/init --env=Development overwrite=All
Pour passer simplement d’une configuration à l’autre aisément.
set HTTP_PROXY_REQUEST_FULLURI=1
set HTTPS_PROXY_REQUEST_FULLURI=0
set HTTP_PROXY=http://user:password@proxy.url.or.ip:port
En fonction des URL à accéder il faut jouer avec les valeurs, voire ajouter
le HTTPS_PROXY également.
Commentaires
Ajouter un commentaire :
Liste des commentaires :
Pas de commentaires pour le moment :'(