mai 30

Utilisation des dates pour l’international

Traduction de l’article »Using International Dates » de RussellEngland que vous trouverez ici. Lorsque « je » est utilisé, il s’agit bien évident de l’auteur d’origine RussellEngland.

Introduction

J’ai eu besoin d’utiliser des dates aux formats britannique (dd/mm/yyyy) dans mon application, mais il m’a été difficile de trouver des exemples sur la manière de faire jusqu’au jour ou j’ai trouvé de comment le faire – jusqu’à ce que je trouve sur ce forum un excellent « post » http: // www.yiiframework.com/forum/index.php ?/topic/3649-dealing-with-i18n-date-formats/

De ces « posts », j’ai réalisé une solution complète : j’ai noté qu’il fallait que j’utilise le format de date ‘court’.

Définir la variable locale

Ajoutez cette ligne à protected/main/config.php, à ajouter après le nom d’application

return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My Application',
    'sourceLanguage'=>'en_gb',

Définissez la règle de validation ¶

Dans votre modèle, eg : protected/models/client.php ajouter cette règle de format pour n’importe quelles dates

public function rules()
{
    return array(
        ...
        array('date_of_birth','date','format'=>Yii::app()->locale->getDateFormat('short')),
        ...

Dates d’épargne ¶

J’ai modifié le « post » du forum pour les dates courtes. De nouveau c’est dans votre modèle

protected function beforeSave()
{
    if(parent::beforeSave())
    {
        // Format dates based on the locale
        foreach($this->metadata->tableSchema->columns as $columnName => $column)
        {
            if ($column->dbType == 'date')
            {
                $this->$columnName = date('Y-m-d',
                    CDateTimeParser::parse($this->$columnName,
                    Yii::app()->locale->getDateFormat('short')));
            }
            elseif ($column->dbType == 'datetime')
            {
                $this->$columnName = date('Y-m-d H:i:s',
                    CDateTimeParser::parse($this->$columnName,
                    Yii::app()->locale->getDateTimeFormat('short')));
            }
        }
        return true;
    }
    else
        return false;
}

 

Formater les dates

Et finalement formaté vos dates au retour de la fonction de recherche dans votre modèle.

protected function afterFind()
{
    // Format dates based on the locale
    foreach($this->metadata->tableSchema->columns as $columnName => $column)
    {
        if (!strlen($this->$columnName)) continue;
 
        if ($column->dbType == 'date')
        {
            $this->$columnName = Yii::app()->dateFormatter->formatDateTime(
                    CDateTimeParser::parse(
                        $this->$columnName,
                        'yyyy-MM-dd'
                    ),
                    'short',null
                );
        }
        elseif ($column->dbType == 'datetime')
        {
            $this->$columnName = Yii::app()->dateFormatter->formatDateTime(
                    CDateTimeParser::parse(
                        $this->$columnName,
                        'yyyy-MM-dd hh:mm:ss'
                    ),
                    'short','short'
                );
        }
    }
    return true;
}

Changer la langue de destination

En théorie (je ne l’ai jamais testé) vous devriez pouvoir changer la langue à la volée – mon idée est lorsqu’un utilisateur se connecte, la variable locale est mise à jour dans la fonction « afterlogin » et les dates sont formatées selon la langue.

Yii::app()->setLanguage($lang);

mai 23

Créer votre première application avec Yii

La création d’une application avec Yii se réalise en moins de 10 minutes. Nous verrons, dans une prochaine série d’articles, la création complète d’une application.

Pour réaliser une application, les pré-requis suivants doivent avoir été mis en œuvre :

 

Nous allons créer le squelette de l’application en ligne de commande. Ne vous inquiétez pas, c’est simple…

 

Créer le squelette en ligne de commande

<PHP> <Yiic> <LeNomDeVotreApplication>

qui correspond à :

PHP : le chemin + le nom de l’exécutable PHP
Yii : le chemin + le nom du script yiic
LeNomDeVotreApplication : le chemin + le nom du dossier de votre application

 

Pour exécuter une ligne de commande sous Windows, <Démarrer> puis <Exécuter> puis saisissez cmd.

Exécuter une ligne de commande sous windows

Pour continuer dans les exemples donnés précédemment (à savoir le serveur Web dans le dossier c:\wamp\www et le dossier de Yii dans c:\wamp\www\yii), la ligne de commande correspondante serait :

C:\wamp\bin\php\php5.3.10\php.exe c:\wamp\www\yii\framework\yiic web
app c:\wamp\www\Ma1ereApplication

Cette commande va créer le squelette de l’application Ma1ereApplication  sous le dossier c:\wamp\www\Ma1ereApplication.

Résulat de l'exécution une ligne de commande sous windows

Ci-joint le résultat complet de l’exécution de la ligne de commande

C:\wamp\www&gt;C:\wamp\bin\php\php5.3.10\php.exe c:\wamp\www\yii\framework\yiic web
app c:\wamp\www\Ma1ereApplication
Create a Web application under 'C:\wamp\www\Ma1ereApplication'? [Yes|No] y
      mkdir C:/wamp/www/Ma1ereApplication
      mkdir C:/wamp/www/Ma1ereApplication/assets
      mkdir C:/wamp/www/Ma1ereApplication/css
   generate css/bg.gif
   generate css/form.css
   generate css/ie.css
   generate css/main.css
   generate css/print.css
   generate css/screen.css
      mkdir C:/wamp/www/Ma1ereApplication/images
   generate index-test.php
   generate index.php
      mkdir C:/wamp/www/Ma1ereApplication/protected
   generate protected/.htaccess
      mkdir C:/wamp/www/Ma1ereApplication/protected/commands
      mkdir C:/wamp/www/Ma1ereApplication/protected/commands/shell
      mkdir C:/wamp/www/Ma1ereApplication/protected/components
   generate protected/components/Controller.php
   generate protected/components/UserIdentity.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/config
   generate protected/config/console.php
   generate protected/config/main.php
   generate protected/config/test.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/controllers
   generate protected/controllers/SiteController.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/data
   generate protected/data/schema.mysql.sql
   generate protected/data/schema.sqlite.sql
   generate protected/data/testdrive.db
      mkdir C:/wamp/www/Ma1ereApplication/protected/extensions
      mkdir C:/wamp/www/Ma1ereApplication/protected/messages
      mkdir C:/wamp/www/Ma1ereApplication/protected/migrations
      mkdir C:/wamp/www/Ma1ereApplication/protected/models
   generate protected/models/ContactForm.php
   generate protected/models/LoginForm.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/runtime
      mkdir C:/wamp/www/Ma1ereApplication/protected/tests
   generate protected/tests/bootstrap.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/tests/fixtures
      mkdir C:/wamp/www/Ma1ereApplication/protected/tests/functional
   generate protected/tests/functional/SiteTest.php
   generate protected/tests/phpunit.xml
      mkdir C:/wamp/www/Ma1ereApplication/protected/tests/report
      mkdir C:/wamp/www/Ma1ereApplication/protected/tests/unit
   generate protected/tests/WebTestCase.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/views
      mkdir C:/wamp/www/Ma1ereApplication/protected/views/layouts
   generate protected/views/layouts/column1.php
   generate protected/views/layouts/column2.php
   generate protected/views/layouts/main.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/views/site
   generate protected/views/site/contact.php
   generate protected/views/site/error.php
   generate protected/views/site/index.php
   generate protected/views/site/login.php
      mkdir C:/wamp/www/Ma1ereApplication/protected/views/site/pages
   generate protected/views/site/pages/about.php
   generate protected/yiic
   generate protected/yiic.bat
   generate protected/yiic.php
      mkdir C:/wamp/www/Ma1ereApplication/themes
      mkdir C:/wamp/www/Ma1ereApplication/themes/classic
      mkdir C:/wamp/www/Ma1ereApplication/themes/classic/views
   generate themes/classic/views/.htaccess
      mkdir C:/wamp/www/Ma1ereApplication/themes/classic/views/layouts
      mkdir C:/wamp/www/Ma1ereApplication/themes/classic/views/site
      mkdir C:/wamp/www/Ma1ereApplication/themes/classic/views/system
 
Your application has been created successfully under C:\wamp\www\Ma1ereApplicati
on.
 
C:\wamp\www>

Nous obtenons l’arborescence suivante :

Ma1ereApplication_arborescence

Vérifier le résultat via votre navigateur

Pour voir le résultat, utiliser votre navigateur et saisissez :

http://localhost/Ma1ereApplication/index.php
Ma1ereApplication_navigateur

Quelques explications

Cette application a été créé sans avoir écrit une seule ligne de code.

L’application générée est composée de 4 pages :

  1. Home (page d’accueil) : protected\views\site\index.php
  2. About (page « à propos de… ») : protected\views\site\pages\about.php
  3. Contact (formulaire de contact) : protected\views\site\contact.php
  4. Login (la page d’authentification) : protected\views\site\contact.php

 

Pour comprendre le contenu des répertoires, je vous invite à visiter le site officiel de Yii framework dans le tutorial/Convention, paragraphe Dossier.

Ne vous inquiétez pas si tout est en anglais, nous verrons dans l’un des prochains articles comment créer une application multi-langues.

 

Il s’agit d’un squelette d’application qui n’est pas totalement opérationnel, il est nécessaire de faire le paramétrage pour cela. A voir dans un prochain article.

mai 16

Installer Yii (sous windows)

L’installation du framework Yii se fait en deux étapes :

  1. Télécharger la dernière version stable du framework Yii (au 08/05/2012, la dernière version stable de Yii est la 1.1.10 du 12 février 2012).
  2. Décompresser l’archive télécharger à l’étape 1 (yii-1.1.10.r3566.zip)
    Yii peut être stocké soit dans l’arborescence du serveur soit en dehors. Nous allons l’installer dans le répertoire du serveur (c:\wamp\www\yii), cela permettra d’exécuter directement les exemples fournis par Yii framework.

Pour rappel, pour installer un serveur web, l’article est ici. Dans cet article, le serveur est installé dans le dossier c:\wamp. Et le dossier du serveur Web (Web root directory) est c:\wamp\www.

Après avoir décompressé l’archive, vous trouvez les éléments suivants dans le dossier :

  • les fichiers texte CHANGELOG, LICENSE, README et UPGRADE
  • les dossiers demos, framework et requirements

Le dossier demos contient quatre applications exemples qui vous serviront de base pour comprendre le fonctionnement de Yii : le célèbre « Hello World » , un blog (utilise les méthodes de base : MVC, accès à une base de données, authentification, formulaire…), hangman (un jeu du pendu), et phonebook (un répertoire téléphonique).

Le dossier framework contient le corps et la mécanique du framework Yii (voir définition d’un framework) et tous les sources en PHP de Yii framework.

Le dossier requirements (exigence en français), contient une application permettant de savoir si les pré requis sont présents pour faire fonctionner Yii framework.

Vérifier que Yii est correctement installé

Après avoir installé Yii, vous pouvez vérifier que le serveur supporte tous les pré-requis nécessaires au fonctionnement de Yii. Si vous avez installé Wampserver, les pré requis sont remplis (voir l’article sur l’installation d’un serveur Web). Vous pouvez le faire en accédant au script de test de la configuration du serveur à l’URL :

Dans la configuration choisit, nous aurons :

http://localhost/yii/requirements/index.php

 

Résultat de l'application requirements de Yii framework

A noter qu’il n’est pas nécessaire d’avoir toutes les extensions.

Yii est maintenant correctement installé, nous pouvons créer notre première application avec Yii framework.

 

 

mai 08

Installer un serveur Web local sous windows

Vous avez la possibilité d’utiliser

J’ai testé  WampServer. Le site est en français, l’installation est facile (par contre en anglais :( ) et son utilisation (en français) très intuitive permet de le configurer très rapidement (sans toucher aux fichiers de configuration).

1ère étape – Télécharger le package WampServer

Télécharger ici  (au moment de la rédaction de cet article, la version de wampserver est la 2.2d).

2ème étape – Installer le package WampServer

Il suffit ensuite d’exécuter le fichier téléchargé et de suivre les écrans de l’installeur. L’installation est en anglais, mais reste simple.

1er écran – Présentation
Cliquez sur le bouton « Next » pour commencer

wampserveur_install_1er écran

2ème écran – Licence

Renseignement d’accord de la licence : Cliquez sur « I accept the agreement » (j’accepte les condition de la licence) puis de cliquez sur le bouton « Next ».

Wampserver - écran acceptation de la licence

3ème écran – Choix du dossier d’installation de wamp

J’ai garder le répertoire par défaut, mais vous pouvez le changer.

Wampserver - Dossier d'installation

4ème écran – Création des raccourcis sur le bureau ou la barre de lancement rapide

wampserveur - Raccourci vers le bureau

 

5ème écran – Résumé des éléments à installer

Wamp server - Résumé des éléments à installer

6ème écran – Copie des fichiers

Wampserver - Copie des fichiers

7ème écran – Navigateur par défaut

Si vous avez firefox d’installé sur votre poste, je vous conseil de le prendre comme navigateur Web par défaut.

Wampserver - Navigateur par défaut

8ème écran – Finalisation de l’installation

wampserver - Copie des fichiers et paramétrage terminé

9ème écran – Paramétrage du mail de l’administrateur

Pour le moment, laissez les paramètres par défaut

Wampserver - Nom serveur + mail de l'administrateur

10ème écran – Installation terminée – Lancement de Wampserver

Wampserver - Lancement wampserver ?

3ème étape – Paramétrer wampserver en français

Une fois l’installation terminée et le serveur démarré (l’icône verte  Icône de wampserverest dans la barre en bas à droite (à coté de l’heure)).

Icône de wampserveur dans la barre des tâches

 

Mettons le serveur en français, positionnez vous sur l’icône ouis cliquez avec le bouton droit de la souris (le menu ci-dessous apparaît) puis choisissez « language », puis français.

 

wampserver - menu contextuel
wampserver - menu contextuel pour choisir la langue

 

Conclusion

Dans la configuration qui a été choisit, le dossier racine de votre serveur Web (Web root directory) : c’est le dossier vers lequel pointent vos URL sera c:\wamp\www.

Lorsque vous souhaiterez accéder à vos applications avec votre navigateur, tapez « http://localhost »

Résultat dans le navigateur pour accéder au serveur local (localhost)

L’installation est terminée vous pouvez commencer à installer Yii framework.

A noter que l’installation de Wampserver répond au pré requis de Yii framework d’avoir PHP 5.1 ou supérieur.

mai 08

Qu’est-ce qu’un Framework ?

Un framework est une boite à outils intégrant une architecture applicative permettant ainsi d’automatiser et de standardiser la réalisation d’une application.

Les avantages sont multiples : travail en équipe, capitalisation des développements, meilleurs maintenabilités, et facilite les évolutions.