Framework JQuery mobile

Tous ceux qui ont déjà utilisé le dernier né de JQuery, à savoir JQuery mobile vont vraiment apprécier JqmPhp. En effet JqmPhp permet de simplifier une syntaxe assez lourde et surtout de fournir un code optimisé.

Travaillant actuellement sur une application web pour smartphone, je me suis fortement intéressé à ce framework pour rendre mon code plus clair.

Une fois que vous avez téléchargé le framework vous devez le configurer. A savoir que la version actuelle de JQuery mobile est la Alpha 4 mais que Jqmphpest conçu pour la Alpha 3. C’est pourquoi il est possible que certaines des nouvelles fonctionnalités de JQuery Mobile ne soient pas encore prises en charge.

Pour la configuration rendez-vous dans le fichier /lib/jqmphp.php

Les valeurs suivantes sont à changer par les liens vers les nouvelles versions de JQuery Mobile (en local ou sur un serveur distant).

/**
 * Sets the jQuery path.
 * @var JQMPHP_JQ
 */
define('JQMPHP_JQ', 'http://code.jquery.com/jquery-1.5.min.js', true);

/**
 * Sets the jQuery Mobile path.
 * @var JQMPHP_JQM
 */
define('JQMPHP_JQM', 'http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js', true);

/**
 * Sets the jQuery Mobile CSS path.
 * @var JQMPHP_CSS
 */
define('JQMPHP_CSS', 'http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css', true);

Maintenant que le framework est configuré on va pouvoir créer notre première page.

<?php   
//  Creation de l'objet jqmphp
$j = new jqmPhp();  

// ajout du titre au header
$j->head()->title('Menu principal');

// Création d'une page ( il peu en avoir plusieurs par jqmphp )
$p = new jqmPage('Menu Principal');

// choix du theme et ajout du titre à la page
$p->theme('c')->title('Menu Principal');

// choix du theme pour le header de la page
$p->header()->theme('c');

// ajout de text HTML dans la page
$p->addContent('Bienvenue sur ma belle page');

// Exemple de création de liste ( courant dans JQuery mobile)
$gm = new jqmListviem();

// création et ajout d'un item à la liste
$ann = $gm->addBasic('Lien 1', 'page1.php','',true);

$cal = $gm->addBasic('Lien 2', 'index.php?action=3');

// ajout de la liste à la page
$p->addContent($gm);

// ajout de la page à l'objet
$j->addPage($p);

// affichage de la page
echo $j;

?>

Comme on peut le remarquer le code est assez simple, mais qu’en est-il du résultat ?

Ceci est un exemple très simple mais vous trouverez sur le site du projet des exemples complexes avec des formulaires, des listes à icônes…

En conclusion : Bien que le framework soit très récent il promet d’être très utile aux développeurs web soucieux des utilisateurs de smartphone.

Nous sommes dans l’attente d’une version qui sera sûrement adaptée à la version beta de JQuery mobile qui sortira prochainement.

Sortie de Symfony 2

La nouvelle mouture tant attendue de Symfony 2 est sortie hier matin en version stable. Après de nombreux mois de tests, de versions releases, beta et RC, la version stable et définitive est enfin accessible.

Au programme, énormément de changements et une simplification apparente du framework. Les bundles font leur apparition, ils vont vous permettre d’insérer dans votre site Internet des modules que vous pouvez télécharger avec composer. Il existe déjà un grand nombre de bundles tout faits et prêts à l’emploi, comme un forum ou une gestion des membres par exemple. Le but est réellement à court terme de fournir tous les codes de base pour un site Internet, afin de se focaliser seulement sur le coeur de votre application.

Bien que ceci soit une différence notable par rapport aux précédentes versions, la sortie de différentes versions du framework en fonction des utilisations et du niveau des développeurs est une chose encore plus étonnante de la part du framework PHP5, qui a la réputation d’être le plus complexe à apprendre. Pour le moment, seule la version standard est téléchargeable, mais la rumeur parle de version Standard Edition, Sandbox, CMF… Chacune présentera des caractéristiques de base différentes, mais en arrière-plan il s’agira toujours du même noyau Symfony 2.

Les habitués de Propel vont être bien déçus d’apprendre qu’il a disparu du framework. En effet, seul Doctrine, en l’occurrence Doctrine 2, est maintenant disponible. C’est la fin de la cohabitation :p. Le grand plus de Doctrine 2 est la mise en cache des résultats de requêtes. Ceci vous permet de gagner du temps sur la génération de vos pages web.

Dans les nouveautés notables, on peut mentionner l’intégration du moteur de templates twig. Twig est aujourd’hui un des meilleurs moteurs de templates PHP disponibles, son intégration n’est pas une grande surprise.

Installation et Configuration de CodeIgniter

Pré requis

  • Un serveur Apache ( lamp, wamp, easy php, mamp, … )
  • Un SGBD mysql

La Base de données

Dans un premier temps voici un exemple de petite base de données. Par exemple la base de données suivante

CREATE DATABASE `tuto` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `tuto`;

CREATE TABLE IF NOT EXISTS `message` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `sujet` varchar(255) NOT NULL,
  `message` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Maintenant que la base est prête nous alors configurer CodeIgniter pour qu’il puisse s’y connecter.

Rendez-vous dans le fichier : application/config/database.php

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'VOTRE LOGIN MYSQL';
$db['default']['password'] = 'VOTRE MOT DE PASSE MYSQL';
$db['default']['database'] = 'tuto';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE; // à passer à FALSE une fois le dev fini
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Maintenant le framework peut en théorie se connecter à votre base.

Les configurations systèmes

Pour un fonctionnement optimal de CodeIgniter il y a plusieurs configurations à faire.
Pour les config suivantes rendez-vous dans le fichier /application/config/config.php. Et là beaucoup de choses à changer.

//ligne 17
$config['base_url']	= 'http://localhost/outweb/';
//ligne 60
$config['url_suffix'] = '.html';
//ligne 72
$config['language']	= 'french'; // si vous changez cette valeur il faudra aller chercher les traduction, si vous avez la flemmes ne faites rien ici
//ligne 227
$config['encryption_key'] = 'UN TRUC BIEN COMPLIQUE AVEC DES 1233 ET des !#?$_-éà@';
//ligne 282
$config['global_xss_filtering'] = TRUE;

D’autres paramètres de sécurité sont disponibles mais je les expliquerai dans un autre post.

Les autoloads

Codeigniter permet l’utilisation de librairies, helpers, et de fichiers de config perso.
On peut charger dans le code directement chacun des fichiers de configuration de  l’application mais certains d’entre eux sont indispensables sur chacunes de nos pages. Autant dire à CodeIgniter de les charger automatiquement.
Voici selon moi le minimum indipensable.

$autoload['libraries'] = array("session");
$autoload['helper'] = array("url","database");

Téléchargement

Dans un premier temps il va falloir télécharger le fameux framework. Le mieux étant de prendre la dernière mouture.
Téléchargement du framework.
Dezipper l’archive et copier le dossier qui est dedans à la racine de votre répertoire www.
Pour plus de simplicité nous allons le renommer outweb.
Supprimer le dossier user_guide qui contient une copie de la documentation en ligne de CodeIgniter.

Configuration

Il y a trois grandes parties à configurer dans CodeIgniter :

Une fois les quelques configs précédentes effectuées votre CodeIgniter est prêt.
Si vous vous rendez à l’adresse http://localhost/outweb/ vous aurez le message de bienvenue de CodeIgniter

Nous allons donc pouvoir commencer notre application.

Comme vous le savez surement CodeIgniter est basé sur un model MVC. Par conséquent il est préfèrable de garder cette approche tout au long du développement.