Blog geekesque... ou presque

Aller au contenu | Aller au menu | Aller à la recherche

Installer une extension sur Yii2 sans composer

Lorsque Yii2 est sorti, une grande avancée a été faite dans son système d'installation, ainsi que dans celui des extensions: l'utilisation de composer. Composer est un outil de gestion des dépendances en PHP qui est fort utile et pratique, un peu comme les gestionnaires de package sous linux (apt, yum, ...). Mais parfois, on ne peut pas l'utiliser, et c'est plutôt bloquant.

Je vais donc vous décrire, si possible simplement, comment ajouter une extension à Yii2 à la main.

La nouvelle architecture de Yii2 organise les extensions uniquement dans le répertoire vendor, ce qui simplifie énormément les choses, ainsi que l'on va le voir par la suite.

J'ai décidé d'installer l'extension yii2-jui qui permet d'avoir jQuery-ui sous la forme de widgets PHP.

Pré-requis

Il vous faudra télécharger:

Installation de yii2-jui

Cela peut sembler suprenant, mais nous commençons par l'installation de l'extension et non pas de son pré-requis.

Vous devez avoir en votre possession un fichier yii2-jui-master.zip, copiez-le dans le répertoire vendor/yiisoft/ de l'arborescence de votre site et extrayez son contenu. Renommez le répertoire obtenu (yii2-jui-master) en yii2-jui.

Pourquoi ce renommage ? Si vous regardez dans le fichier composer.json qui est dans l'archive, l'une des premières lignes est:

"name": "yiisoft/yii2-jui",

Le nom vous indique où doit être située (physiquement) l'extension dans le répertoire vendor.

Référencement de l'extension

Dans le fichier vendor/yiisoft/extensions.php, il faut ajouter un alias vers l'extension pour que Yii puisse la charger. Le code à ajouter est:

'yiisoft/yii2-jui' =>
    array(
        'name' => 'yiisoft/yii2-jui',
        'version' => '2.0.0.0',
        'alias' =>
            array(
                '@yii/jui' => $vendorDir . '/yiisoft/yii2-jui',
            ),
    ),

Petite correction

Il reste une légère modification à faire dans le fichier JuiAsset.php car l'emplacement de la CSS n'est pas bon. Il faut modifier:

'themes/smoothness/jquery-ui.css',

par

'jquery-ui.css',

Installation de jQuery-ui

Si l'on regarde la section "require" du fichier composer.json de yii2-jui, voici ce qu'elle donne:

"require": {
    "yiisoft/yii2": ">=2.0.4",
    "bower-asset/jquery-ui": "1.11.*@stable"
},

Cela nous indique que cette extension nécessite yii2 version 2.0.4 minimum (qui est déjà installée) et jquery-ui en version 1.11 stable. Cela nous donne aussi une information très importante: jquery-ui doit être placé dans le répertoire vendor/bower/jquery-ui/.

Donc, il suffit de copier l'archive jquery-ui-1.11.4.custom.zip (qui est celle que j'ai obtenu ce jour) dans le répertoire vendor/bower, de l'extraire et de renommer le répertoire jquery-ui-1.11.4.custom en jquery-ui.

Utilisation

L'utilisation de yii2-jui est maintenant d'une facilité déconcertante:

<?php echo yii\jui\DatePicker::widget(['name' => 'attributeName']) ?>

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : https://www.g33k-zone.org/index.php?trackback/96

Fil des commentaires de ce billet