Yii - Extensions

Les extensions sont des packages spécialement conçus pour être utilisés dans les applications Yii. Vous pouvez partager votre propre code en tant qu'extension ou utiliser des extensions tierces pour ajouter des fonctionnalités à votre application.

Utilisation d'extensions

La plupart des extensions sont distribuées sous forme de packages Composer. Composer installe les packages à partir de Packagist - le référentiel des packages Composer.

Pour installer une extension tierce, vous devez -

  • Ajouter l'extension à un composer.json fichier.

  • Exécutez l'installation du compositeur.

Ajout d'un widget de date et d'heure

Ajoutons un joli datetime widget à notre projet.

Step 1 - Modifier le composer.json fichier du modèle d'application de base de cette façon.

{
   "name": "yiisoft/yii2-app-basic",
   "description": "Yii 2 Basic Project Template",
   "keywords": ["yii2", "framework", "basic", "project template"],
   "homepage": "http://www.yiiframework.com/",
   "type": "project",
   "license": "BSD-3-Clause",
   "support": {
      "issues": "https://github.com/yiisoft/yii2/issues?state=open",
      "forum": "http://www.yiiframework.com/forum/",
      "wiki": "http://www.yiiframework.com/wiki/",
      "irc": "irc://irc.freenode.net/yii",
      "source": "https://github.com/yiisoft/yii2"
   },
   "minimum-stability": "stable",
   "require": {
      "php": ">=5.4.0",
      "yiisoft/yii2": ">=2.0.5",
      "yiisoft/yii2-bootstrap": "*",
      "yiisoft/yii2-swiftmailer": "*",
      "kartik-v/yii2-widget-datetimepicker": "*"
   },
   "require-dev": {
      "yiisoft/yii2-codeception": "*",
      "yiisoft/yii2-debug": "*",
      "yiisoft/yii2-gii": "*",
      "yiisoft/yii2-faker": "*"
   },
   "config": {
      "process-timeout": 1800
   },
   "scripts": {
      "post-create-project-cmd": [
         "yii\\composer\\Installer::postCreateProject"
      ]
   },
   "extra": {
      "yii\\composer\\Installer::postCreateProject": {
         "setPermission": [
            {
               "runtime": "0777",
               "web/assets": "0777",
               "yii": "0755"
            }
         ],
         "generateCookieValidationKey": [
            "config/web.php"
         ]
      },
      "asset-installer-paths": {
         "npm-asset-library": "vendor/npm",
         "bower-asset-library": "vendor/bower"
      }
   }
}

Nous avons ajouté la dépendance "kartik-v/yii2-widget-datetimepicker": "*" à la section requise.

Step 2 - Maintenant, à l'intérieur de la racine du projet, exécutez la mise à jour du compositeur pour mettre à jour toutes les dépendances.

Nous venons d'installer l'extension. Vous le trouverez dans levendor/kartik-v/yii2widget-datetimepicker dossier.

Step 3 - Pour afficher le widget nouvellement installé dans la page, modifiez le About vue de la actionAbout méthode de la SiteController.

<?php
   /* @var $this yii\web\View */ use kartik\datetime\DateTimePicker; use yii\helpers\Html; $this->title = 'About';
   $this->params['breadcrumbs'][] = $this->title;
   $this->registerMetaTag(['name' => 'keywords', 'content' => 'yii, developing, views, meta, tags']); $this->registerMetaTag(['name' => 'description',
      'content' => 'This is the description of this page!'], 'description');
?>
<div class="site-about">
   <h1><?= Html::encode($this->title) ?></h1>
   <p>
      This is the About page. You may modify the following file to customize its content:
   </p>
   <?php
      echo DateTimePicker::widget([
         'name' => 'dp_1',
         'type' => DateTimePicker::TYPE_INPUT,
         'value' => '23-Feb-1982 10:10',
         'pluginOptions' => [
            'autoclose'=>true,
            'format' => 'dd-M-yyyy hh:ii'
         ]
      ]);
   ?>
</div>

Step 4 - Maintenant, exécutez le serveur php intégré à partir de la racine du projet via le php -S localhost:8080t web commander.

Step 5 - Aller à http://localhost:8080/index.php?r=site/about. Vous verrez un joli datetime sélecteur comme indiqué dans la capture d'écran suivante.