Bonjour,
Dans l'univers des blogs sur le développement, il est difficile de faire le tri et parfois quand on cherche un tutoriel simple sur un sujet en particulier, on s'y perds. Un excellent blog que je vous recommande si vous cherchez à apprendre le PHP c'est le blog http://www.grafikart.fr, c'est pratiquement des cours d'informatique mais en plus cool et à la maison en plus. La qualité est au rendez vous, et c'est un plaisir de suivre ces vidéos, toutes très bien détaillés. J'aime encore plus le fait que l'auteur ne coupe pas au montage les erreurs qu'il fait en codant devant nous, et nous explique quelle est l'erreur qu'il à fait tout en la corrigeant en direct.
Une de ces vidéo explique en détail comment réaliser un MVC en PHP, cela dure environs 40 minutes et si vous avez le temps je vous le conseil vivement, sinon je vous propose un rapide survole du sujet que je trouve très instructif.
Je ne parlerais pas ici du M(Modèle) de MVC mais juste de la partie Vue-Contrôleur.
Le principe est assez simple : il faut tout d'abord rediriger les urls de notre site vers un "dispatcheur", qui va nous diriger vers le bon fichier.
Pour cela on va activer le mode RewriteEngine de php dans un fichier .htaccess
Ces deux lignes renverrons toutes les urls vers le fichier index.php qui sera notre dispatcheur.
voyons maintenant ce dispatcheur de plus près :
Ce qu'il y a d'important ici, c'est qu'on devine le fonctionnement de notre système MVC, par exemple si vous taper http://mon_site_mvc/employe/new
La variable $controller va avoir comme valeur employe ($param[0]), puis l'action sera new ($param[1]), ensuite on contrôle si l'action existe bien dans notre contrôleur, si oui on l'appel avec $controller->$action() sinon on redirige vers une page 404.
Voyons notre contrôleur :
Ceci est la classe mère, d'ou les autres contrôleur hériterons et voici le contrôleur tutoriels que j'ai créée pour le tutoriel justement et qui hérite de la classe ci dessus :
A partir de ces deux fichiers, que peux on dire ?
La seule page que je pourrait appeler pour l'instant, c'est tutoriels/index puisque je n'ais que le contrôleur tutoriels et l'action index d'implémenté.
Voyons ce qu'il ce passera : j'instancie le tableau $d['tuto'] avec mon nom et mon prénom, dans la réalité ça serais sans doute des variables tirés de ma base de donnée et de modèles, mais pour l'exemple j'ai voulu resté simple. Ensuite je fait un $this->set($d); qui fait appel à la fonction set de ma classe mère, qui stock tout ça dans la variable $vars, ensuite j'appèle $this->render('index'); qui fait appèle à la méthode render de ma classe mère, celle ci extrait les variables du tableau pour pouvoir les utiliser ensuite dans ma vue (on le verra ensuite) puis va cherccher le fichier avec le nom que j'ai passé en paramètre, c'est à dire index.php dans le répertoire views.
Voyons ce fichier :
Je ne peux pas faire beaucoup plus simple... Voila le bout du chemin, mon controlleur va donc charger ce fichier, et comme on a fait un extract($this->vars); avant, je peux me servir de mes variables ainsi : $tuto['nom'].
Et voila, la magie du MVC ! simple et efficace.
Bien sûr cela reste un simple tutoriel, ce code n'est pas destiné à être en production mais c'est un bon départ pour comprendre comment les framework MVC fonctionne.
Vous devez être identifié pour poster un commentaire.
Vous devez être identifié pour poster un commentaire.
Bonjour,
Aller, j'ai un moment de libre pour avancer sur le cahier des charges.. Ce qu'il faut avoir à l’esprit quand vous en êtes là c'est que la moindre petit erreur de conception peut être un désastre si on ne s'en rends pas compte assez vite, je vous épargne le détail du cycle en V mais, il est indispensable de pensé à tout pendant la conception, imaginé que je prenne par exemple un univers en 2D et que je m’aperçoive quand j'ai codé une bonne partie de mon application que finalement il me faut une carte en 3D, ça me prendra énormément de temps à re-coder tout une partie de mon travail, alors que si j'ai bien pensé mon application dès le départ c'est tout bon.
Vous devez être identifié pour poster un commentaire.
Le cahier des charges.
Commencer un projet sur sont temps libre, c'est prendre le temps pour faire avancer les choses, quand vous avez un moment de libre, aux heures de repas par exemple, le soir, pendant le week-end ou vos vacances.. ou si vous êtes comme moi, la nuits entre 2 et 3h du matin ![]()
Il faut maintenant commencer à écrire noir sur blanc ce que je veux.
Vous devez être identifié pour poster un commentaire.
Bonjour !
Selon certaines études, il y a tellement de projet abandonnés que l'on parle d'exception, quand celui ci arrive à terme, dans les délais, et sans coût supplémentaires. On peux dire sans difficulté que 9 projets sur 10 ne se terminerons pas avec les estimations de départs.. et que 3 sur ces 10 projets serons abandonnés. Difficile de faire pire..
On ne connaît pas les raisons exactes qui fait que autant de projet informatique tombe à l'eau, mais avec mon expérience, je peux vous en citer quelques uns : des délais irréaliste, des projets irréaliste, le manque de compétence, le manque d’expérience.. etc j'ai moi même lancé pas mal de projet qui sont resté à la phase 2/100.
Je vous propose durant les jours/semaines/année qui vienne de suivre un projet que je lance, seul, armé de mes petits doigts, d'un clavier et de quelques heures de libre ici et là, pour réaliser un mmo, un des sujets les plus complexe à traiter, je vous invite à aller voir sur le forum le nombre de personne qui ont voulu s'y lancer et regarder combien ont fini leur projet ?
Le but de cette petite aventure, c'est d'abord de s'amuser un peu, enfin surtout vous puisque moi je vais coder, coder et puis.... encore coder ! mais aussi de tenter de répondre à certaine question, de voir comment on peut (peut être) réaliser un mmo seul.
Voila.. ça commence maintenant, 19 Mai 2011.
Voila un plan d'action pour commencer :
1 - Faire un cahier des charges.
2 - Choisir les tehno à utiliser.
Vous devez être identifié pour poster un commentaire.
Ce matin j’ouvre ma boite mail, comme tout les jours, pour dépiler mes mails. Une alerte sur font rouge et gras s’affiche alors au dessus de mes mails, m’avertissant que mon compte avait été accédé depuis la Chine !

Ce genre d’incident n’est pas isolé, plusieurs billet sur le web en parle, Google est connu pour résister tant bien que mal aux pressions politique chinoise cela pourrais être une raison pour que la Chine cible les services de Google et plus particulièrement Gmail.
Je m’interroge aujourd’hui sur la sécurité de ma boite mail..
Et vous..
Vous devez être identifié pour poster un commentaire.
Bonjour !
Voici une petite astuce pour ceux qui aimeraient avoir le menu du haut d'un site web toujours à portée de clic (pour l'exemple ça sera le forum de Developpez mais ça fonctionne pour tous les sites web bien sûr).
On s’appuie ici sur Greasemonkey, un plugin devenu relativement célèbre sur le navigateur Firefox, ce plugin permet de changer des éléments à la voleé sur un site web. Pratique quand on souhaite customiser quelques éléments.
Je vous propose tout simplement d'ajouter quelques styles css supplémentaires sur la page, afin de fixer le menu. Dans un premier temps on peut déjà utiliser firebug pour "tester" les modifications du css sur la page en live, c'est très pratique, et aussi pour repérer l'id des éléments HTML que l'on doit modifier. Dans notre cas l'id de la div à modifier est "quicknav".
Voici le code css qui va nous aider :
#quicknav { left: 50%; margin-left: -450px; position: fixed; z-index: 2; }
On s'aperçoit sur firebug que l'attribut "position: fixed;" nous fixe bien le menu mais il se colle à gauche et se positionne sous les autres éléments. Pour le re-centrer on utilise une parade avec un left à 50% puis un margin-left à peu près à la moitié de la taille du menu. Et voila ! Le menu n'étant pas conçu pour se balader sur la page, ce n'est pas de toute beauté mais là c'est le côté pratique qu'on recherche ![]()
Pour utiliser le script, si vous êtes sur Firefox, vous devez tout d'abord installer le plugin Greasemonkey, ensuite vous pouvez installer n'importe quel script qui est conforme, vous en trouverez tout plein sur le site userscripts.org véritable mine d'or pour les custommer en herbe, sinon sur Chrome c'est utilisable directement ! Il suffit de charger un script, ou de cliquer sur "install" sur le site userscripts.org.
Vous trouverez le script que l'on viens de faire sur cette page.
++
Vous devez être identifié pour poster un commentaire.

La méthode "pomodoro" est utilisé pour gérer sont temps de travail, il s'agit d'une méthode simple qui consiste à découper ces tâche en "tomate", une tomate étant 25 minutes de temps, au bout de 25 minutes vous devez arrêtez pour prendre une petite pause, et reprendre une autre tomate de 25 minutes, ceci 4 fois de suite. Au bout de 4 tomates vous devez prendre un longue pause d'environs 30 minutes. pour en savoir plus vous pouvez visiter le site officiel, ou alors lire le retour d’expérience de mathieu.agopian sur son blog.
Vous devez être identifié pour poster un commentaire.
Un dessin vaut toujours mieux qu'un long discourt ^^
le mécanisme ajax est très rependue maintenant, cela consiste à charger des données dans une page sans recharger la page elle même, ça donne une dimension "client lourd" à la page. ici le mécanisme est illustré avec la bibliothèque Jquery très connue.
j'ai volontairement vulgarisé le code pour en faire un schéma rapidement compréhensif.
Vous devez être identifié pour poster un commentaire.
Bonjour !
Voici un tutoriel que j'ai réalisé, mon premier tutoriel en vidéo.
Malgré quelques maladresses j'espère qu'il vous plaira.
(en attendant de trouver comment je peux ajouter directement la vidéo ici, je vous donne le liens)
Vous devez être identifié pour poster un commentaire.
Bonjour,
Les Golgoths ne tolèrent pas les tricheurs, et ont donc mis au point une technique qui ne permet à aucun élève d'une classe de tricher lors d'un examen important.

Comme le montre l'image ci dessus, l'élève peux essayer de tricher en regardant sur la copie en haut à droite, en haut à gauche, à droite et à gauche. Les Golgoths ont donc décidé qu'il serait interdit de placer les élèves de sorte qu'ils puissent effectivement tricher. Il y a aussi dans les salles de classe des places qui ne sont plus praticables, où les chaises ou les tables sont cassées, ou absentes.
Votre tâche est donc de déterminer, suivant la classe que nous vous donnerons, le maximum d'élèves que la classe peut contenir, sans qu'aucun des élèves puisse tricher.
La première ligne du fichier vous donne le nombre de salles de classe.
Chaque salle de classe est décrite comme ceci : deux entiers, la longueur et la largeur de la salle.
Les lignes suivantes décrivent la classe en elle même. Chaque caractère est soit un '.' ce qui signifie que la place peut être occupée, soit un 'x' qui signifie que la place ne peut pas être occupée (la table est cassée...)
Pour chaque classe, vous devez indiquer le maximum d'élèves que la classe peut contenir sans qu'aucun des élèves puisse tricher.
voici le fichier des classes
Ce problème est inspiré d'une épreuve de Google code Jam (GCJ 2008 Round 3).
Vous devez être identifié pour poster un commentaire.
Bonjour,
Le deuxième défi se termine, avec des participants motivés qui ont bien sûr relevé le défi.
Le défi était donc de trouver une solution au problème du voyageur de commerce, avec une petite variante, qui était que le calcul de la distance entre 2 points se faisait dans l'espace en 3D, et non en 2D, avec donc, 30 points.
Les Golgoths on été très étonnés de la réponse rapide, et efficace de pseudocode.
Il a su utiliser avec génie, un algorithme génétique, ce n'était pas évident pourtant.
Je vous laisse découvrir sa solution sur le forum
Ensuite, Sylvain Togni a livré une version avec un algorithme de type branch & bound, qui a donc confirmé le résultat du meilleur chemin déjà trouvé par pseudocode (89188), tout de même un très bel effort de la part de Sylvain Togni
Les Golgoths tiennent à féliciter ces deux membres, pour leur ingéniosité. Bravo !!
Vous devez être identifié pour poster un commentaire.
Copyright © 2000-2012 - www.developpez.com