autant donné un exemple en reprenant mon premier exempe :
class.singleton.php : joli nom normalisé "class." suivi du nom de la classe et de ".php" pour pouvoir faire de l'autochargement.
j'épargne l'interface qui aurait pu être implémenté par cette si jolie classe abstraite.
Spoiler : afficher/masquer
abstract class singleton {
protected abstract function __construct();
public static abstract function singleton();
}
?></pre>[/spoiler]
class.ihm.php : même motif, même punition.
Avec surcharge, constructeur, destructeur, singleton, et encore j'épargne la méthode factory pour distinguer le print de l'affichage ...
[spoiler]<pre><?php
class ihm extends singleton {
private $show = false;
private static $instance = null;
private $titre;
protected function __construct($titre = _cst_site_name) {
$this->titre = $titre;
}
public function __destruct() {
if ($this->show) {
?>
</body>
</html>
<?php
}
}
public static function singleton($titre = null) {
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c($titre);
}
return self::$instance;
}
public static function affiche($msg) {
if (!$this->show)
$this->entete();
echo $msg;
}
function entete($titre = null) {
$this->show = true;
if (isset($titre))
$this->titre = $titre;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title><?php echo $this->titre; ?></title>
</head>
<body>
<h1><?php echo $this->titre; ?></h1>
<div class="hr"></div>
<?php
}
}
?></pre>[/spoiler]
lib.cst.php : subtilité, le php n'étant pas nativement objet on doit aussi mettre des fonctions et des déclarations de constantes en vracs.
[spoiler]<pre><?php
define('_cst_site_name', 'Mon site');
define('_cst_classes_path', '');
function __autoload($class_name) {
require_once _cst_classes_path . 'class.' . $class_name . '.php';
}
?></pre>[/spoiler]
index.php : le bout du tunnel, la pureté du code objet tenant en deux lignes.
[spoiler]<pre><?php
require_once 'lib.cst.php';
ihm::singleton('Mon site à moi, ouyaya')->affiche('<p>blabla</p>');
?></pre>
20 juin 2008 à 00:24
Je reviens sur la programmation objet : en DUT info la notion nous a été expliquée très tôt mais certaines personnes (pas forcément idiotes) ont mis un certain temps (en mois) à comprendre tout ce que cela impliquait...
Le suis du même avis que LeChat un peu plus haut : pour débuter, mieux vaut du procédural.
20 juin 2008 à 09:16
Tiens je vais ajouter une question pour les pros d'ici.
Peut-on, quand on a déjà de vagues notions, apprendre et raffiner sa connaissance du php en développant à partir de framework comme Symfony ou CakePHP ?
Et en même temps que l'apprentissage, développer des embryons convenables de sites web ?
Ou est-ce que c'est des outils pour lesquels il faut vraiment maitriser le php avant de coder "correctement" ?
20 juin 2008 à 09:23
Ellendhel a écrit
Je reviens sur la programmation objet : en DUT info la notion nous a été expliquée très tôt mais certaines personnes (pas forcément idiotes) ont mis un certain temps (en mois) à comprendre tout ce que cela impliquait...
Le suis du même avis que LeChat un peu plus haut : pour débuter, mieux vaut du procédural.
Vous avez peut-être raison, il vrai qu'il y a quelques années, j'avais du mal à comprendre ses notions
20 juin 2008 à 09:45
Kuro a écrit
Tiens je vais ajouter une question pour les pros d'ici.
Peut-on, quand on a déjà de vagues notions, apprendre et raffiner sa connaissance du php en développant à partir de framework comme Symfony ou CakePHP ?
Et en même temps que l'apprentissage, développer des embryons convenables de sites web ?
Ou est-ce que c'est des outils pour lesquels il faut vraiment maitriser le php avant de coder "correctement" ?
Alors je connaissais bien le PHP avant de commencer à utiliser Symfony.
Ca m'a aidé mais je ne pense pas que ce soit absolument nécessaire, le plus important c'est de comprendre les concepts qu'il y a derrière ce framework (Modèle MVC, prog orientée Objet, mapping Objet/Relationnel, utilisation de helpers). Pour ça, la documentation de Symfony est plutôt bien faite et il y a aussi des tutoriaux en ligne.
20 juin 2008 à 10:15
je viens de regarder une vidéo : éditer deux ou trois fichiers XML avec un éditeur texte, lancer 4 ou 5 lignes de commandes, tout ça pour générer 3 formulaires dégueux que tu aurais aussi vite fait de faire à la main. J'ose pas imaginer le bordel en cas d'erreur de syntaxe, de champs oublier ou pire d'une valeur incorrecte dans les propriétés d'un attribut.
Donc en plus de la syntaxe php, html, il faut connaître celle spécifique du framework, mais avec 1000x moins de support et d'exemples. Sans compter que ça revient à scripter la génération de scripts, c'est à dire rajouter une couche de glaire sur une couche de morve.
20 juin 2008 à 12:00
Ah mais on est d'accord sur le fait que ça demande un temps d'apprentissage avant de maîtriser l'outil hein. Sinon je suis d'accord sur le fait que leur générateur de CRUD est inutile.
Mais après, il y a tout un ensemble de fonctionnalités qui permettent de déléguer une bonne partie de l'aspect base de données et sécurité notamment et l'utilisation des helpers permet aussi de simplifier la création de la partie HTML.
Ca permet de gagner du temps sur un projet conséquent mais c'est sur que si c'est pour pondre un blog, ça sert à pas grand chose.
Dernière modification le 20/06/08 à 12:13 par SimOOn
20 juin 2008 à 12:11
Ce site est en train de devenir bien trop l33t pour moi.
Cela dit vous pouvez continuer. Mais restez dans votre cellule hein.
20 juin 2008 à 15:18
Ouais, d'ailleurs, je vais ramener un peu ce sujet à mon niveau...
Par rapport à ce que disait LeChat au tout début, à savoir commencer par coder des modules faciles, est-ce que vous penser que la création d'une galerie photo, dont les albums peuvent avoir un nombre d'élément variable, est un exercice accessible à un néophyte ?
20 juin 2008 à 17:44
Moi j'ai codé MeMpic une gallerie personnelle pour toutes mes photos que j'utilise sur les forums. Pas de gestion d'utilisateurs, juste miniature et catégories d'images. Je ne suis pas un pro, mon code rebutera un codeur dont c'est le métier mais je veux bien te filer les sources sans soucis ! Par contre il y aura toutes mes erreurs dedans... Mais ça fonctionne plutot bien !
***************************edit*******************************
merci de juste regarder ou d'uploader, pas de suppression.
Si ça t'interresse fais moi signe !
Dernière modification le 20/06/08 à 22:50 par PanPan
20 juin 2008 à 17:52
Ben écoute, même si ça ne correspond pas exactement à ce que je veux faire, ça pourrait vraiment me servir de base intéressante (beaucoup plus que le code de coppermine...)
Merci de la proposition ; je t'envoie un petit mp.
t'es pas obligé de garder ma jolie vache... ;)
20 juin 2008 à 18:01
Oki je vais juste vite fait chez le coiffeur et je t'envoie ça, je crois que c'est pas trop mal commenté, mais je ne me souviens plus trop !
20 juin 2008 à 18:05
Je laisse le mdp quelques heures si d'autres veulent tester. Il y a des bugs au niveau des caractères des noms de catégories.
20 juin 2008 à 18:06
Tu pourrais penser aussi à créer ton propre blog à toi, c'est relativement simple à programmer et ne demande pas de grandes compétence en PHP / Mysql. C'est à mon avis un bon début et une bonne motivation pour commencer.
20 juin 2008 à 20:30
Question : vous savez, sur certains site on voit des sortes de faux pop-up, des cadres qui se mettent en avant plan, avec la page de fond qui prend un contraste moindre (je crois que c'est ce qui se passe dans Hordes quand on doit valider une action).
C'est codé en quoi, ça ? en Flash ? C'est difficile à faire ?
09 juillet 2008 à 09:36
JustineF a écrit
Question : vous savez, sur certains site on voit des sortes de faux pop-up, des cadres qui se mettent en avant plan, avec la page de fond qui prend un contraste moindre (je crois que c'est ce qui se passe dans Hordes quand on doit valider une action).
C'est codé en quoi, ça ? en Flash ? C'est difficile à faire ?
C'est de l'AJAX il me semble (du javascript avancé, pour simplifier les explications).
Tu as des librairies toutes prêtes qui contiennent ce genre d'effets avec un nombre minimum de paramètres à changer toi-même : JQuery, Prototype, Scriptaculous, Mootools, etc...
09 juillet 2008 à 10:09
Et bien en fait, il faut voir ce que tu veux en faire de cette fenêtre.
C'est souvent tous simplement du dhtml ( mélange de javascript et de css/html ).
Exemple type ici
Si tu dois retenir une adresse pour les Css, l'accessiblité,etc.. c'est ici : url : http://css.alsacreations.com/
Dernière modification le 09/07/08 à 11:22 par gwendal
09 juillet 2008 à 11:21
Concrètement, le site que je suis en train de monter, est une sorte d'album photo / carnet de voyage.
En fond, un carnet ouvert.
Page de gauche, une photo (de relativement petite taille : 300*400 maxi) et page de droite des commentaires.
Le truc basic statique (je ne m'amuse pas à faire une animation pour tourner les pages).
L'histoire, du faux pop-up, c'est pour voir la photo en plus grand quand on clique dessus.
Je ne veux pas que ça s'ouvre dans une autre fenêtre/onglet, qu'il qu'il faille revenir en arrière pour retourner au carnet.
(sinon pour les css, pour l'instant, ma bible, c'était ça : url : http://www.zonecss.fr/ )
09 juillet 2008 à 13:42
url : http://www.huddletogether.com/projects/lightbox/
ça s'installe très simplement, et ça fonctionne très bien
juste quelques subtilités dans l'organisation des répertoires au début.
Dernière modification le 09/07/08 à 13:45 par Akshell
09 juillet 2008 à 13:45
Akshell a écrit
url : http://www.huddletogether.com/projects/lightbox/
ça s'installe très simplement, et ça fonctionne très bien
juste quelques subtilités dans l'organisation des répertoires au début.
Yes !
C'est exactement ce que je cherchais !
Merci beaucoup.
Je lirai tout ça en détail plus tard. J'aurais sans doute des questions à ce moment là, parce qu'un article qui cumule informatique et anglais, c'est pas gagné...
09 juillet 2008 à 14:49
ah oui, je fais même plus attention.
la version 2 à l'air encore plus simple : url : http://www.huddletogether.com/projects/lightbox2/
09 juillet 2008 à 14:57
C'est bizarre, dans la V1 de lightbox, on peut faire un clic milieu (ouvrir dans un nouvel onglet) sur une image, mais pas dans la V2 qui intercepte même le clic droit. J'espère que c'est réglable car c'est assez lourd de ne pas pouvoir faire un clic droit où l'on veut.
Merci pour les liens.
09 juillet 2008 à 15:00
lightbox c'est le truc qui a révolutionné les galeries 2.0 on le trouve partout ce script.
J'utilise la V2 et en effet c'est super simple à mettre en place, et il a vraiment de la gueule ce script
Dernière modification le 09/07/08 à 15:45 par gwendal
09 juillet 2008 à 15:44
Kane a écrit
C'est bizarre, dans la V1 de lightbox, on peut faire un clic milieu (ouvrir dans un nouvel onglet) sur une image, mais pas dans la V2 qui intercepte même le clic droit. J'espère que c'est réglable car c'est assez lourd de ne pas pouvoir faire un clic droit où l'on veut.
Merci pour les liens.
A partir de l'image agrandie, tu peux faire un clic droit dans la V2 aussi.
09 juillet 2008 à 16:17
Répondre au sujet
Vous devez être identifié pour participer à ce topic.
Nicolas le jardinier