JeuWeb - Crée ton jeu par navigateur
[PHP] Singleton PDO - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP] Singleton PDO (/showthread.php?tid=5755)

Pages : 1 2 3 4


RE: [PHP] Singleton PDO - popayan - 19-10-2011

Je verrais plus quelque chose comme ca...


class Categorie
{
public $id; // id de la categorie (categories.id)
public $nom; // nom de la categorie (categories.nom)

function __construct() {}
function save($params) {
// Ici on sauvegarde dans la bdd
}
}


et une class Blog pour gestion des categories, articles, etc... qui ressemble à ceci:

Code :
class Blog
{

    public function ajouter_categorie($nom)

    {
                $categ = new Categorie();
            $categ.save(["nom" =>$nom]);
    }
}

que je pourrais utiliser comme ceci:

$Blog -> ajouter_categorie("ma categorie")




RE: [PHP] Singleton PDO - php_addict - 19-10-2011

(19-10-2011, 08:30 PM)Sephi-Chan a écrit : Sans offense : je lis toujours les mêmes conneries. Smile

pas de problème, je suis auto-didacte et j'ai pris la mauvaise d'apprendre tout tout seul (avec des conseils tels que les votres Wink )

Merci popayan pour ton exemple.

j'ai lu partout sur le net que l'un des avantages de la poo est que l'on peut difficilement faire "n'importe quoi". J’avoue que je m'interroge maintenant car tout dépend du codeur et non du support. la preuve en est que je peut faire des trucs super crados en poo :$


RE: [PHP] Singleton PDO - Sephi-Chan - 19-10-2011

Au contraire, on peut très facilement faire n'importe quoi en objet. La preuve avec tous ceux qui viennent du procédural. Voilà pourquoi c'est une très mauvaise idée de commencer à faire de l'objet seul. Mieux vaut utiliser l'objet (via des frameworks), et ensuite s'y mettre quand on est à l'aise dans son utilisation.

Voilà aussi pourquoi je milite contre PHP : un langage hybride entre les mains d'un débutant donne des résultats… Hybrides.


RE: [PHP] Singleton PDO - popayan - 20-10-2011

+1 Sephi concernant les frameworks! L'apprentissage n'est pas si compliqué, il faut juste choisir le bon framework pour apprendre (personnellement les 2 plus abordables seraient CakePhp et Ruby on rails).

Je reviens également sur ce que tu as dis hier ("je verrais plus tard pour les héritages car là c'est du domaine de l’ésotérisme pour le moment... "), c'est une grave erreur de dire ca, l'héritage est un des concepts les plus importants dans la POO et tu ne pourras sans doute pas faire ce que tu veux sans l'utiliser!
En reprenant ton exemple du blog, qu'est qu'on en commun les objets Categorie, Article et Commentaire? On les gère tous avec une base de données (sauvegarder, trouver selon certain critère, etc...)? C'est ici que l'héritage va être utile!

ton code devient :


class ObjectDB {
function save ($params ) { /*Ici on sauvegarde dans la bdd */ }
function update ($params ) { /*Ici on sauvegarde dans la bdd */ }
function delete () { /* Ici on delete l'objet dans bdd */ }
static function find( $criterion ) { /*Ici on fera du SELECT en fonction des critères*/ }
}

class Article extends ObjectDB {
/* Plus besoin de s'occuper du save et autres ici! */
public $title;
public $body;
public $created_at;

/*Ici tu peux placer les fonctions propres à ton objet
}

/* et tu utilises ca comme ceci :*/
$last_article = Article::find(array("order_by" => "id", "limit" => "1"));
$last_article->update(array("body" => null));
/* Ici j'ai récupéré le dernier article et mis à vide le contenu du corps de l'article */
$very_old_articles = Article::find(array("where" => "NOW() - created_at > 3650"));
foreach ($very_old_articles as $article) {
$aricle->delete();
}
/* Ici j'ai récupéré les articles vieux de plus de 10 ans et je les ai supprimés */

Voila, j'espère que je t'ai montré que la POO et l'héritage sont indissociables! Et surtout sache que ce mécanisme ne sera pas à coder si tu utilise un framework puisque, entre autre, c'est une des principales fonctions de ceci Smile


RE: [PHP] Singleton PDO - php_addict - 25-10-2011

bonjour

Je me permet de revenir sur la question et j'en profite pour vous remercier de vos exemples d'utilisation de la POO

Passer tout mon projet en POO n'est pas à ma portée pour le moment vu qu'il est 100% procédurale, cependant:

Est ce que cela vous parait stupide ou idiot de recoder en POO quelques éléments qui étaient en procédural, je pense notamment à:

- gestion de la mise en cache de certaine page HTML ou affichage du cache HTML
- gestion des sessions en bdd (session_set_save_handler)
- mon moteur de template maison (qui ressemble à phpsavant dans le sens où mes fichiers template peuvent contenir du code php ce qui évite de se taper un autre pseudo language de template à apprendre...après tout php est déjà un moteur de template Wink )

en gros tout ce qui ne ressemble pas aux objets (class poo) joueurs, villages, user, etc...

alors? quelques classes POO dans un projet 90% en procédural? stupide? idiot?

++


RE: [PHP] Singleton PDO - Sephi-Chan - 25-10-2011

Ça dépend de ce que tu veux faire de ce projet. Est-ce que c'est une application que tu veux pérenniser et faire tourner pendant des années ? Où est-ce que c'était plutôt un projet pour apprendre ?

C'est ton code métier qui bénéficiera le plus d'un passage à l'objet, pas les composants "cadre" (le moteur de template, le gestionnaire de session, le système de cache).


Tu t'es tapé l'écriture de composants qui sont intégrés dans les framework et maintenant tu veux te taper leur réécriture (mais comme tu débutes ça va être nul, donc il faudra les réécrire encore dans quelques mois, et plusieurs autres fois). Le temps te manque pour apprendre à utiliser un framework mais pas pour réécrire sans cesse des composants qui n'ont aucune importance dans ton jeu ?

Réalises-tu le non-sens de ta démarche ? Ça ne s'applique pas qu'à toi mais aussi à tous ceux qui croient gagner du temps en codant les choses eux-même.
De même, tu apprendras mieux et plus rapidement en créant les choses à l'aide de bons outils. Car en faisant les choses toi-même, tu ne pourras pas te rendre compte à quel point c'est bidon, c'est vraiment se faire chier pour rien et perdre un temps fou pour un bénéfice inexistant).


Continue ce projet en procédural et utilise un framework sérieux pour ton prochain projet (pas un petit framework que personne ne connaît).
Ne te lance jamais seul dans l'objet, ça sera pire que tout et tu perdras infiniment plus de temps.


Garde bien en tête que tu n'es pas le premier à être passé par ces étapes et que ce n'est pas pour t'embêter qu'on (en l'occurrence, moi) te dit ça mais vraiment pour t'épargner des choses inutiles. Utilise ton temps pour apprendre des choses utiles. Tu as la chance d'avoir des gens qui peuvent t'aider à apprendre (notamment les membres de JeuWeb), profite-en.


RE: [PHP] Singleton PDO - php_addict - 26-10-2011

Merci Sephi-Chan, j'ai l'impression que tu as toujours raison...ca t’arrive de te planter? Wink

je vais suivre tes conseils


RE: [PHP] Singleton PDO - Sephi-Chan - 26-10-2011

C'est ironique ? xD

Je me plante souvent : j'ai utilisé PHP, j'ai dénigré la POO, j'ai dénigré les frameworks (je parlais de sur-séparation du code, etc.).

Si tu regardais mes 1000 premiers messages sur le forum (et sûrement plein d'autres plus récents), tu trouverais des trucs vraiment pas glorieux. Mais ça fait partie du jeu.

J'aime apprendre des choses et — par dessus tout — j'aime apprendre aux autres et aider. D'où cette tendance exaspérante à vouloir foutre tout le monde sur Ruby. Du coup j'ai souvent tendance à chambouler ce que je crois vrai et à le faire savoir.


RE: [PHP] Singleton PDO - php_addict - 26-10-2011

(26-10-2011, 09:52 PM)Sephi-Chan a écrit : C'est ironique ? xD

non non pas du tout...j'ai l'impression d'avoir 1000 choses à apprendre que tu connais déjà, ce n'est pas de la flatterie, juste un peu de jalousie Wink

mon prochain projet si il y en a un sera en poo avec un framework...mais je crois que c'est une étape naturelle, non?


RE: [PHP] Singleton PDO - Sephi-Chan - 26-10-2011

Je ne crois pas qu'il existe encore de framework procédural pour PHP, donc je suppose que ce serait naturel, oui. ^^