Posted 1 year ago

DestruKalips - un framework pour créer des jeux en PHP

Le projet sur le CMS a touché à sa fin (de façon assez laborieuse, certes, mais il a touché à sa fin :p).

Je vais donc pouvoir me consacrer un peu plus à mes différents projets. En vrac finir les traductions que j’ai commencé pour CodeIgniter.fr, reprendre un peu mon jeu et retoucher un peu au CMS si la motivation suit (ce dont je doute pour les prochaines semaines :D).

J’ai donc décidé de commencer par DestruKalips, ce projet qui me tient tant à coeur. Je vais travailler sur deux aspects:

  1. Reconstituer une équipe
  2. Basé le jeu sur un système solide et propre (et flexible et cool et génial et top moumouth et…bon j’arrête :p)

En ce qui concerne l’équipe, il faut que je trouve quelqu’un qui m’aide à bosser sur le gameplay (et un peu le RP). J’ai ma petite idée sur le sujet^^

En ce qui concerne le code lui-même, je me suis (plus que très largement) inspiré de ma récente expérience avec un framework. En fait, PHP c’est useless sans framework. Et je me suis dis, pourquoi ne pas créer un mini-framework PHP pour créer des jeux type DestruKalips.

La principale idée derrière ce projet c’est la multitude de solutions possibles pour implémenter l’interface (le “HUD”) : frames, ajax, solution perso…

La seconde idée est la reprise de certains éléments de CodeIgniter (chargement de libraries, de vues…) à “ma sauce” (c’est moins propre quoi xD). J’ai honteusement pompé le système de flashdata des sessions de CodeIgniter par exemple :P

Concrètement, pour développer un nouveau jeu, il suffit de créer le fichier XML contenant les différentes parties de l’interface, d’écrire la vue par défaut qui affiche ces cadres (frames, css) et ensuite…il ne reste qu’à écrire les différents contrôleurs et les différentes méthodes et *pouf*, ça fait un jeu x)

Au niveau des prétentions, rien de bien fou, si ça peut aider je le donnerais avec plaisir, sinon, bah tant pis =)

Je reviendrai sur la conception de façon détaillée dans un autre billet !

Posté le 7 February 2010.

Tags: #destrukalips #framework - Comments

Posted 2 years ago

CodeIgniter - afficher le résultat d’un formulaire validé avec succès

Salut,

Avec CodeIgniter, la validation de formulaires est assez simple grâce à la librairie Form_validation. Je reviendrai sur son utilisation dans la série de screencasts (sur laquelle je travaille).

Dans les exemples de CodeIgniter.com, ils créent une vue “success” pour chaque formulaire.

Pour ma part, je crée une seule vue “form_validated_view” (un truc comme ça qui dit ce que c’est).

Je fais appel à cette vue avec le paramètre suivant:

$data = array (“texte” => “Formulaire de login validé”, “redirect” => anchor(“contrôleur/methode,”texte du lien”));

La vue se charge ensuite de l’afficher selon un comportement unique, avec le texte et un lien de redirection.

Bien sûr, c’est à changer à sa convenance et ses besoins (pour par exemple mettre une redirection automatique après quelques secondes). Ca pourrait même faire l’objet d’une future amélioration de CodeIgniter x)

Rien de très compliqué (vraiment pas ! ^^), simplement une réponse à une question que je me suis posé, alors si ça peut aider :)

Posté le 13 January 2010.

Tags: #code igniter #php #technique #tutoriel - Comments

Posted 2 years ago

CodeIgniter - plugin de transformation d’une chaine en url

Salut,

Bien qu’il existe une fonction dans le helper url (la fonction url_title) permettant de transformer une chaîne de caractères en URL, j’ai réécris une fonction sous forme de plugin pour le faire.

Le gros problème de cette petite fonction c’est qu’une chaîne du type “j’étais tout ouïe” devient “jtais-tout-oue” au lieu de “jetais-tout-ouie”. J’avais besoin d’une fonction prenant en compte les accents (pour faire des jolies urls).

Jusqu’à présent le bout de code n’a pas posé de problème, si vous en trouvez n’hésitez pas à la modifier (et à me transmettre la modification :p).

La fonction retire aussi les caractères non-autorisés dans l’application (via la variable de configuration).

Le code en lui même n’est pas très propre, j’ai un peu de mal avec les regex mais bon, si ça marche….(j’aime pas dire ça en général, mais là, c’est des regex t_t)

Placez le fichier dans le dossier /systeme/application/plugins/

Pour le charger, c’est le classique: $this->load->plugin(‘string_to_url’);

Quant à l’utilisation, c’est la fonction string_to_url($chaine_a_transformer) : string (la chaîne transformée).

Le téléchargement, c’est par ici.

Posté le 13 January 2010.

Tags: #code igniter #technique #php #tutoriel - Comments

Posted 2 years ago

CodeIgniter - Intégrer facilement un header et un footer à toutes les pages de votre site

Salut,

Un des grands problèmes qui se posent (je pense qu’il se pose pour tout le monde) quand on commence avec CodeIgniter est “Comment fait-on pour ne pas avoir à réécrire le header et le footer à chaque fois ? D’habitude j’utilise des includes”.

Il existe pas mal de solutions, plus ou moins complexes sur le wiki officiel de CodeIgniter.

N’ayant pas vraiment cherché quand la question s’est posée pour moi, j’ai développé ma propre solution. Je la trouve flexible et conceptuellement juste (je peux me tromper :)) vis à vis du framework.

Le principe réside dans l’extension de la classe Controller et jouer avec le principe d’héritage des méthodes.

Pour l’exemple, nous utiliserons un contrôleur Blog.php dont la méthode index() affiche la liste des billets du blog en appelant la vue afficher_billets.

NB: veuillez m’excuser pour la forme, mais tumblr ne propose pas toutes les options de mise en page dont j’aurais besoin :p Je le referai peut-être sous forme d’un screencast !

  1. Je créé un fichier MY_Controller.php (assurez vous dans la configuration que le prefixe d’extension est bien MY_, il l’est par défaut) dans le répertoireapplication/libraries.
  2. Je fais hériter mon contrôleur Blog de MY_Controller et non plus de Controller:
    class Blog extends MY_Controller {
    function Blog() {
    parent::MY_Controller();

    }

    }

    N’oubliez pas de modifier le constructeur de Blog.php !
  3. Dans le fichier MY_Controller.php, j’écris deux méthodes:

    private function afficher_header() {

    $this->load->view(‘header’);

    }

    private function afficher_footer() {

    $this->load->view(‘footer’);

    }

  4. A présent, on crée les deux vues header.php et footer.php dans le répertoire application/views. Je vous laisse le soin de les remplir, généralement mon header contient les informations des balises <head> et l’ouverture de <body> ainsi que, pourquoi pas, le menu. Et mon footer, bah les informations légales et le blablabla habituel.
  5. Et maintenant, vous pouvez charger votre vue afficher_billets comme cela:

    $this->afficher_header();

    $this->load->view->(‘afficher_billets’,$data);

    $this->afficher_footer();

  6. Pour éviter de devoir écrire ces trois lignes à chaque fois (et d’en oublier par la même occasion) j’ai développé une méthode chargement_vue dans leMY_Controller:

    function chargement_vue($vue,$data) {
    $this->afficher_header();

    $this->load->view->($vue,$data);

    $this->afficher_footer();

    }

  7. Vous faites à présent appel à votre vue comme cela:

    $this->chargement_vue(‘afficher_billets’,$data);

Le premier intérêt de la méthode est que sur toutes vos pages vous aurez le header et le footer dès que vous ferez appel à une vue (après tout, c’était le but :p).

Le second intérêt c’est que vous pouvez réécrire les méthodes afficher_header()et afficher_footer() dans un contrôleur pour lui donner un comportement particulier pour certaines pages. Et tout ceci proprement.

N’hésitez pas à me faire part de vos remarques, qu’elles concernent le fond ou la forme !

Posté le 10 January 2010.

Tags: #code igniter #php #technique #tutoriel - Comments

Posted 2 years ago

Blog - ajout d’un système de commentaire

Bon, Tumblr est vraiment cool et tout et tout. Mais il lui manque un système de commentaire.

J’ai mis celui de DISQUS en place on va voir ce que ça donne. J’ai déjà vu pire intégration au niveau graphique, mais j’essaierai quand même d’arranger ça.

Posté le 9 January 2010.

Tags: #divers - Comments

Posted 2 years ago

CodeIgniter - Documentation en français

Bonjour,

Je viens de tomber sur le futur site de la communauté française. Il n’y a pour le moment que le guide d’utilisateur en cours de traduction et un groupe de discussion google.

Le site devrait ouvrir demain (10 janvier 2010).

Je vais suivre leur affaire de près, et pourquoi pas essayer de donner un coup de main.

Site de la future communauté française CodeIgniter.

Posté le 9 January 2010.

Tags: #code igniter - Comments

Posted 2 years ago

Eclipse - Build your own Eclipse with Yoxos

J’aimerais partager un lien vers (selon moi) THE site pour télécharger Eclipse. Pour ceux qui ne savent pas, Eclipse est un IDE (un environnement de développement) qui est très sympa, notamment pour programmer en Java.

Pas mal de monde s’y est mis à l’IUT cette année (forcé par les profs de l’IUT, certe :p) et beaucoup ont eu des problème. J’ai moi même pas mal galéré pour avoir tous les plugins qui vont bien et tout et tout.

Et puis j’ai découvert Yoxos (dit comme ça, ça fait très pub produit minceur ou anti-ride mais bon :D). Ce site permet entre autre de construire un eclipse sur mesure.

Plugin SVN, compilateurs (C++ par exemple), et d’autres outils sont disponibles.

Pour ceux que ça intéresse, Build your own Eclipse with Yoxos.net !

Et ça marche sur tous les systèmes d’exploitation !

Posté le 8 January 2010.

Tags: #eclipse #software - Comments

Posted 2 years ago

CodeIgniter - De la suite dans les idées

L’idée était un peu la raison de l’ouverture du blog, et je pense que je vais la concrétiser. Je pense écrire un petit tutoriel sur CodeIgniter, je ne sais pas encore pour faire quoi, ni quelle forme (pourquoi pas me mettre aux screencasts ?), mais je pense que je vais le faire.

Pourquoi pas un petit moteur de blog, ça pourrait être pas mal dans un premier temps.

Je pensais participer au site du zéro( qui malgré l’opinion que j’ai de sa “nouvelle communauté” (de trolls)) est une excellente initiative. Donc leur pondre un tuto CodeIgniter sur la base de ce que je publierai ici, pourquoi pas.

Posté le 8 January 2010.

Tags: #code igniter #projet - Comments

Posted 2 years ago

CodeIgniter – Faire appel à un modèle depuis un autre modèle

Nous avons été confrontés à une contrainte de CodeIgniter pendant le développement du CMS. La réponse s’est trouvée sur le forum officiel, bien cachée ^^

Mise en situation : nous sommes dans le modèle A, et nous souhaitons faire appel à une méthode du modèle B.

Il n’existe aucune façon de réaliser cet appel directement. Il faut faire appel au super-objet CI.

Voici la solution :

Class A_model extends Model {

private $_ci ;

function A_model() {

parent ::Model() ;

$this->_ci = &get_instance() ; // on récupère l’instance de l’objet ci

$this->_ci->load->model(‘B_model’) ; // chargement du modèle B

}

function foo() {

$this->_ci->b_model->methode() ; // appel à une méthode du modèle B

}

}

Ca marche aussi avec les chargements de classes et de helpers :)

Posté le 8 January 2010.

Tags: #code igniter #technique #php - Comments

Posted 2 years ago

CodeIgniter - Présentation du framework

Il existe peu de ressources en français concernant CodeIgniter, c’est pourquoi j’aimerais publier quelques astuces, voir tuto, malgré le fait que la doc anglaise soit super simple à saisir et très bien foutue.

CodeIgniter est un framework Php destiné à être pris en main facilement. Il implémente le modèle MVC, comme la plupart des framework d’ailleurs. Je ne connais pas d’autres framework donc je ne ferai aucune comparaison.

En plus du classique modèle-vue-contrôleur, CodeIgniter met aussi à disposition une foule de fonction déjà codée et diablement utile. Il y d’un côté les classes (qui permettent par exemple d’utiliser la base de données, les sessions, mais aussi d’autre fonctionnalité plus haut niveau comme la classe de validation de formulaire qui permet de réaliser des tests sur vos formulaires facilement ou la classe Benchmark qui permet de tester les performances de l’application) et de l’autre les helpers qui sont des listes de fonctions facilitant la vie (par exemple le helper qui permet de gérer des smilies très simplement).

La liste des classes et des helpers est disponible sur le magnifique user guide de code igniter. A l’occasion je me lancerai peut-être dans une traduction en français..pourquoi pas ?

En plus de ces fonctionnalités, CodeIgniter permet de créer ses propres classes, ses propres helpers, et d’étendre les fonctionnalités des classes/helpers existants. Le tout très simplement, évidemment :p

Le gros point noir de CodeIgniter est pour moi la sécurité (ou plutôt le manque de sécurité) des sessions. En effet, CodeIgniter utilise son propre système de sessions basé sur les cookies, qui même s’ils sont cryptés, sont moins sécurisant que les sessions classiques. L’argument des développeurs du framework est la compatiblité sur les différents servers. Certaines extensions permettent de changer ce système mais je n’ai _encore_ pas pris le temps de m’y attarder.

Un simple billet est trop court pour présenter complètement le framework, et je ne pense pas en faire d’autres de ce genre, pour plus d’infos, visitez le site de code igniter (et plus particulièrement le user guide, dont le lien est plus haut).

Posté le 8 January 2010.

Tags: #code igniter #php - Comments