Tutoriel Vidéo PHP : POO et Création de models

Dans ce tutoriel vidéo vous apprendrez à utiliser la Programmation Orienté Objet en PHP pour créer des "models". Ces objets vous permettront de communiquer plus facilement avec votre base de donnée à travers des fonction de sauvegarde, de suppression et de lecture.


Télécharger la vidéo
(Réservé aux premiums)

Télécharger les sources
(Réservé aux premiums)


Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.

Vous aimerez aussi

Les namespaces

Les namespaces
12m

Dans ce tutoriel vidéo vous apprendrez à utiliser les namespace ou...

API LastFM

API LastFM
35m

Dans ce tutoriel vidéo vous apprendrez comment utiliser l'API de...

71 commentaires
Ajouter un commentaire

jessyjames05 Il y a 20 heures Répondre

Super ce tuto,franchement merci a toi !!!
Maintenant je commence a mieux comprendre la POO !

pierrot Il y a 13 jours Répondre

Super tuto! Merci beaucoup!
Je comprend mieux l'intérêt de la POO et je sens que je vais pas tardé à passer sérieusement au model MVC :D
Merci encore pour tout tes super tutos!

Julien_xD Il y a 1 mois Répondre

Niquel !

Davidou2a Il y a 3 mois Répondre

Salut,
A propos de la fonction find, je pense qu'au lieu d'utiliser :

$conditions = "1=1";
if(isset($data['conditions'])){$conditions = $data['conditions']; }

Il aurait peut être dans un souçi de lecture du code (ou cosmétique) plus simple d'écrire avec un opérateur ternaire?

$conditions = (isset($data['conditions'])) ? $data['conditions'] : "1=1";

ça tient en une seule ligne, et ça évite d'assigner une variable au début et d'éventuellement la changer si l'index prévu dans le tableau est valable.

Remarque également valable pour les autres valeurs du tableu :D

Amicalement.

matista19 Il y a 4 mois Répondre

super ce tuto sur le models!! j'ai fait a peut pret le meme sauf que j'ai poussé plus loin avec plus de details et des requetes plus pointu avec des jointure sur select ...
mais bon merci grafikart de m'avoir mis sur la bonne voix comme d'habitude !! big up

ArmikOfficiel Il y a 5 mois Répondre

J'ai regardé pas mal de vos tuto, et je vous en remercie d'ailleur.

Et j'ai une petite demande? très petite même ! bah si petite que vous ne l'avez même pas remarquez ! non je ne parle pas du nano non plus!la demande est la suivante :



<!--//* Auriez vous l'amabilité de nous faire DES Tutoriaux sur :
ASP.NET
et les autres languages WEB
*//-->

ddlink Il y a 6 mois Répondre

et aussi svp : a quoi sert la fonction read une fois qu'on a écrit find() ??? :s
merci pour votre aide

ddlink Il y a 6 mois Répondre

je te remercie pour ce fabuleux site ^^
j'aimerai poser une question qui m'intrigue bcp : pourquoi crée a chaque fois une nouvelle class ( extension du model ) alors qu'on pourrais simplement a chaque fois renseigné un nouveau nom de table...
du genre $model->table = "nouvelletable" ; puis on continue le travail...

c'est possible ou c'est moi qui n'ai pas bien compris le principe ? merci

bilou Il y a 6 mois Répondre

Bonjour,
Le tuto est bien fait et bien expliqué également. Cela dit, quelle est l'utilité de "this" dans cette instruction "$this->$k=$v;". J'ai enlevé le "this" et j'ai eu le même résultat "$k=$v;".

Joshua Il y a 7 mois Répondre

Bonjour,

Très bon tutoriel en effet, comme ça a pu être dit plus bas.
La petite question que je me pose est la suivante : à quoi fait référence le $sql .= "$k = '$v'"; ?<
De plus, pourquoi préfixer par .$this ?

Encore bravo pour cet excellent tutoriel ! ;-)

drakonbill Il y a 9 mois Répondre

Super cours ! Merci de mettre tous ces cours à notre disposition pour un prix très raisonnable , je suis en licence informatique et ça va bien m'aider ! Je fais tourner !

ralal Il y a 9 mois Répondre

Très bon tutoriel,merci beaucoups.
Pourriez-vous faire un tuto complet sur la creation de l'espace membre avec le MVC!
Sinon bonne continuation et merci encore,ca m'a beaucoup aidé tes tutos!!!!

Louy0u Il y a 10 mois Répondre

Tutoriel très intéressant et pratique
ty

sakhr Il y a 10 mois Répondre

a vrais dire , ceci est impecable, vous ne laissez rien a rectifier .
merci bien et bonne continuation

domix24 Il y a 11 mois Répondre

Bonjour,
j'ai une erreur lorsque je ne met pas ?id=
par ici pour m'aider -> [url=http://www.grafikart.fr/questions/1154 ]http://www.grafikart.fr/questions/1154 [/url]

Tilo Il y a 11 mois Répondre

Bonjour,

Déjà un grand bravo pour ce tuto qui traite d'un sujet très peu abordé.
J'ai une petite question pour toi :
Comment fais tu si tu as plusieurs classes avec des relations ?

Par exemple une classe User qui contient un attribut Cars, qui est un tableau d'objets Car.

Ça m’intéresserai pas mal de savoir comment tu gère ça au niveau de l'objet Model, notamment pour la récupération d'une liste d'user ou pour la sauvegarde?

Merci d'avance

Aurox Il y a 11 mois Répondre

Haaa un tuto que je cherchais depuis un petit moment, je pense que je vais le regarder entièrement demain
PS: J'ai remarqué que mon wamp aimait pas trop la POO, il me met des "Parse Erreur" là où il n'y en a pas dès qu'il doit lire des classes, créer des objets ou autres éléments utilisés en POO. Quelqu'un sait d'où ça peut venir?
( Et ne me dites pas que j'ai fait des fautes dans mon code, parce que j'ai testé la chose sur un CMS fonctionnant très bien et sur le code utilisé par grafi dans un tuto sur PDO que j'ai vérifié pendant 30 min pour vérifier que j'avais bien recopié à l'identique ).
Sinon, merci pour le tuto grafi

bocaliste Il y a 12 mois Répondre

Merci beaucoup pour ce tutoriel très utile !

@ntonin Il y a 12 mois Répondre

Edit : désolé du double post c'est moi qui buguait.

@ntonin Il y a 12 mois Répondre

La vidéo ne charge pas chez moi.

siriu Il y a 1 an Répondre

Super tuto ...
Est ce que quelqu'un l'a reproduit avec PDO ?
Car, je vais le faire mais je me sens juste et j'aimerai bien comparer

Orsam Il y a 1 an Répondre

Bonjour,

Peut-on passer une variable à une fonction static et si oui, comment faire ?
class page{
static function lien($NumeroPage){
echo "voici le lien ".$NumeroPage;
}
}
Merci
Orsam

Orsam Il y a 1 an - Répondre

C'est bon j'ai trouvé !! j'ai juste oublié "public" avant "Static" pour pouvoir l'utiliser comme ça :

page::lien(9);

Orsam

Styffeur Il y a 1 an Répondre

Bonjour, déjà très bon tutoriel parmi d'autre que j'apprécie sur se site.

moi je suis débutant dans la POO, et je me trouve sur un petit probleme mineur qui m’empêche d'avancer plus loin sur le tutoriel.

je n'arrive pas avoir le résultat du 17 minutes et 14 sec.

SQL me retourne cette erreur:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM categories WHERE id = 2' at line 1

j'ai essayer sur plusieurs serveur 1&1, net@vous, en local.
faut-il faire une config pour MySql ?

Merci d'avance.

zet Il y a 1 an Répondre

Bonjour,

J'ai découvert ton site vraiment par hasard car je cherchais des info sur la POO.
Me lançant dans un BTS (eh oui il faut savoir se remettre en cause même à 50 ans ... ), j'avais besoin de connaitre cet aspect de l'informatique. Issu du monde AS 400 cela est totalement nouveau pour moi. Je voulais tout simplement te remercier pour tes tutoriels qui sont très bien fait. Jusqu'à maintenant je n'ai trouvé que des constructions de classe pour des voitures et autres mais très franchement de là à le rendre concret il y a du travail... Encore merci car grâce a ton travail j'ai enfin pu me rendre compte de l'intérêt que ça représente.

Chapeau bas !!!

AzO Il y a 1 an Répondre

Bonjour à tous, Très bon tutoriel. J'ai une question avec la fonction save tu t'en sert avec $_POST comment peux on faire pour s'en servir autrement.

Car j'aimerai faire ceci :
mysql_query('UPDATE video SET vus=vus+1 where id="'.$id.'" ');


Mais par l'intermédiare de la fonction save est ce possible ? Merci d'avance de vos réponse

monkeydluffy Il y a 1 an Répondre

Bonjour à tous,

J'ai bien suivi le tutoriel et il marche vraiment parfaitement....
Donc j'ai voulu continuer pour une autre table dans la même base de données, et la ca ne marche plus...

J'ai crée un nouveau fichier index.php, et j'ai crée le model lié à ma table, j'ai toujours le même message :
"Fatal error: Class 'famille' not found in E:\wamp\www\PDO\models\model.php on line 101"
Je ne comprends pas pourquoi il ne trouve pas la classe alors qu'elle est bien crée...Si une personne pouvait m'indiquer d'où peut provenir cette erreur.

hamlet Il y a 1 an Répondre

Bonjour,
Tout d'abord, félicitations pour vos tutos vidéos, ils sont très intéressants.
J'aurais une question (sans passer par les modèles) :
j'ai 3 tables => PRODUITS, FAMILLES et MARQUES
La table PRODUIT contient (outre les champs de bases, à savoir, id et nom) un champ famille_id (clé étrangère de la table FAMILLES) et un champ marque_id (clé étrangère de la table MARQUES).
Je voudrais afficher dans un tableau HTML la liste des produits avec les champs mais avec les champs nom des tables FAMILLES et MARQUES correspondant...
Est-ce que je dois passer par des jointures dans la classe Produit ?
Ou bien utiliser des classes Marques et Familles et dans ce cas, comment faire la correspondance ?
Je sais le faire en PHP "normal" mais je suis perdu avec les objets....

Merci d'avance pour toute l'aide que vous pourriez me donner
@ bientôt !

hamlet Il y a 1 an - Répondre

Bon, je me réponds à moi-même, ayant trouvé la solution...
En fait, au départ, je faisais bien ma jointure dans ma classe Produit mais je ne récupérais que l'id et le nom de la marque. Après analyse, il se trouve que les noms des champs de ces 3 tables ont le même nom... et donc les valeurs étaient écrasées par les dernières (marque.id -> famille.id -> produit.id etc...) dans le balayage du résultat :
while ($data = mysql_fetch_assoc($requete)){
$d[] = $data;
}
return $d;

En fait, il fallait que j'utilise des alias dans ma requête : produit.id AS prod_id, famille.id AS fam_id, etc...
Et là, dans mon affichage (fichier index.php), je fais un foreach ($d as $v) et je récupère les valeurs : $d['prod_id'] etc...

J'espère avoir été assez clair lol
@ la prochaine

leknoppix Il y a 2 ans Répondre

TUTORIEL TOUJOURS AUSSI BIEN EXPLIQUÉ
petit soucis, ce tutoriel n'apparait pas ni dans le carrousel dans la partie tutoriel ni dans la sous rubrique php.

Autre question, pourquoi n'a tu pas fait la présentation du models php/sql avec la pdo sql?

barry Il y a 2 ans Répondre

Bon tuto comme toujours. Je trouve d'ailleurs l'exemple des helpers bien choisit.
Toutefois je pense qu'il est préférable de définir des valeurs par défaut aux méthodes différentes de null (enfin, tant que c'est possible). Ainsi, public function read($field='*'){...} éviterait un if ($field==null){$field='*';}

Mamatt Il y a 2 ans Répondre

Bon tuto dans l'ensemble.

Cependant, j'ai remarqué que vous utilisiez souvent or die(); à la suite de vos requêtes SQL. C'est une erreur d'optimisation qu'il faut apprendre à éviter (ne serait-ce que pour alléger la génération), en effet die(); est un alias de exit().
On peut dire qu'on s'en fout, on ne parle qu'en ms mais personnellement je préfère avoir un code propre et performant au maximum.

Autre point, de temps en temps, vous vous embrouillez (notamment avec les objets et les classes, je sais pu si c'est dans cette vidéo ou dans les précédentes). Vous parlez d'instancier un objet alors qu'on créer un objet en instanciant une classe, l'objet est donc une instanciation de la classe et pas lui-même instancié.
Je pense important de bien saisir cette hiérarchie.

Je trouve le code un peu fouilli aussi, un peu indenté à l'arrache, mais bon ce n'est que mon humble avis et aussi causé par l'IDE utilisé qui a l'air bien chiant à mettre les deux "" après chaque égal. Et puis les explications suivent très bien alors au final on s'en sort à peu près vivants.

Amicalement.

Emporio Il y a 2 ans Répondre

On ne met jamais ses attributs en public, le but de la POO c'est de pouvoir réutiliser son code, et on évite que la personne qui l'utilise puisse modifier les variables directement.

Elles servent a ça les setter et getter, modifier et afficher (retourner) des attributs.

Makaveli Il y a 2 ans Répondre

Ooooooooh ! mais c'est très bien expliqué ce tuto ! Il ne reste qu'à implanter constructeur(s) et destructeur(s). Déjà un excellent coup de main sur la création de "Models" pour ceux qui débutent en poo.

Efficace ce grafikart

Grafikart Il y a 2 ans - Répondre

Merci, ravi de voir que vous appréciez

Ealon Il y a 2 ans Répondre

Bonjour,
très bon tuto, j'apprends pas à pas la POO avec cette vidéo.
Je voulais savoir si il serait possible de mettre à notre disposition les fichiers utilisés dans le tuto, car recopier tout les codes des exemples devient vite fastidieux.

Merci encore pour votre réponse, et continuez ainsi.

Ealon

fantoche Il y a 2 ans - Répondre

Bonjour,

Pour ma part, je trouve très formateur et j'apprends plus en copiant le code.

Essai !!

;-)

Wapaca Il y a 2 ans Répondre

Salut, je n'ai pas trop compris comment on s'organise lors de l'utilisation de la poo sur un site complet, le model sert pour tout le site ou bien on fait 1 model/catégorie (membre, tuto, chien ...) ???

Corentin Il y a 2 ans Répondre

Super tuto merci encore ...

Corentin Il y a 2 ans - Répondre

J'arrive pas à l'adapter avec obstart ...

-sa m'affiche une page blanche ^^

Merci par avance

golgotha Il y a 2 ans Répondre

Bonjour,

Merci pour ce superbe screencast.

Je suis tombé dans la poo dès le début ou j'ai commencer à programmer, et j'ai été très surpris par un passage de la vidéo, ou vous ajouter des champs à votre objet, dynamiquement, ce qui est impossible dans les langage courant comme java, c, c++.
l'objet reste ouvert dynamiquement.. c'est assez surprenant pour moi.

ça à l'air de vous paraître naturel pourtant.

Merci encore pour tout vos screencast, vous êtes très pédagogue.

darknico Il y a 2 ans Répondre

5.3.2

rhavl Il y a 2 ans Répondre

Quelle est la dernière version de php?
Et est-ce que c'est deja exploitable?

Weby Il y a 2 ans Répondre

@Dearth : Merci pour tes explications !

aemaethe Il y a 2 ans Répondre

J'ai eu la réponse à ma question, var était utilisé avec la version de php.

aemaethe Il y a 2 ans Répondre

Salut,

Je suis en train de regarder un peu ton tuto sur la POO et j'aurais une question à propos de la déclaration de tes variables. Lorsque tu les déclares tu met var $marque;

J'ai parcouru pas mal de tutos et je n'avais jamais vu de "var" mais uniquement des attributs tels que "private"

Don ma question, qu'est-ce que ce var ? :p

Dearth Il y a 2 ans Répondre

@Weby(1)
tu peux faire

public function query( $sQuery )
{
$sQuery = mysql_query( $sQuery );

return $sQuery
}
ensuite dans ta classe tu peux faire $this->query("SELECT * FROM news");
ceci est un exemple.

Weby Il y a 2 ans Répondre

Salut, (1) je ne comprends pas à quoi correspond la fonction query() dans tes sources, ni comment l'utiliser ?!...

(2) D'autre part, tu as ajouté des commentaires avec un formatage bien particulier. Est ce parce qu'ils peuvent être exploités par quelque chose où est simplement une convention ? Quel est le rôle de @param ?

Merci ;-)

mib Il y a 2 ans Répondre

C'est vraiment bien sympa ce tutorial ça ressemble beaucoup à Cakephp un grand merci pour ce gros travail
Par contre ça se passe comment si au sein d'un même formulaire on veut faire un enregistrement sur deux tables différentes ? Il faudrait genre préfixer les champs et faire un traitement particulier dans le Model ?

Hum Il y a 2 ans Répondre

merci continue ton site est genial

hum Il y a 2 ans Répondre

quel logiciel 2diteur utilises tu?
Merci

Grafikart Il y a 2 ans - Répondre

J'utilise Komodo Edit, tu pourras trouver une liste d'éditeur ici : http://grafikart.fr/blog/dossier-editeurs-codes-470

Bartimeus Il y a 2 ans Répondre

Pourquoi coder en PHP4 ?

Pamou Il y a 2 ans Répondre

Bon,faut dire que ce n'est peut-être pas très pro x)

toogy Il y a 2 ans Répondre

"Alors là j'ai créé deux voitures... Virtuellement, en fait j'ai pas vraiment créé des voitures hein... Heureusement !"

Heu... Oui, on a pas 2 de Q.I. hein ? ^^

Grafikart Il y a 2 ans

Mais moi j'ai un humour de merde
J'ai rien trouvé de plus intelligent à dire à ce moment là

Skater54 Il y a 1 an

Moi j'ai trouvé ça trop drôle ^^

Deimz Il y a 6 mois - Répondre

Moi aussi j'ai bien rit =D

alinovitch Il y a 2 ans Répondre

Absolument génial, un tel tutorial m'a fait progressé et me redonne du courage.
Un grand merci

quent1du58 Il y a 2 ans Répondre

Oups... Une newsletter pourrait être bien en plus d'un flux RSS.

quent1du58 Il y a 2 ans Répondre

Merci, j'ai enfin trouver le temps de le voir :p
P-s:

basketteur-33 Il y a 2 ans Répondre

bravo very good tuto

Mikih57 Il y a 2 ans Répondre

Bonsoir a vous:
A un moment (dans le l'équivalent du SELECT ) tu fais ceci :
foreach ($data as $k=>$v)
$this->$k = $v;

Tu ajoutes donc des variables à ta classe mais comment les détruire ?

Exemple prenons la table aricle(id_article,titre,text). et la requete SELECT * FROM article WHERE id_article= 6
Nous allons donc crée :
$this->id_article puis $this->titre et enfin $this->text. Puis plus loin dans notre code nous aurons à refaire un select par exemple : SELECT 'titre' FROM article WHERE id_article = 7 (changement d'id)
La nous écraserons $this->titre précédemment crée mais nous ne supprimerons pas les anciennes variables ($this->id_article et $this->text) qui aurons en plus des valeurs hors contextes.

Je suis actuellement sur un projet et j'ai justement ce problèmes.Aurais tu une solution ?

Je vous remercie, Amicalement Mikih

DevilYann Il y a 2 ans Répondre

Salut Grafikart
Bravo pour tes excellents tutos.
Serait il possible de savoir avec quel logiciel tu enregistres la séquence vidéo des travaux que tu présentes ?
Un grand merci d'avance.

elscorto Il y a 2 ans Répondre

Salut Grafikart, bravo pour tes tutos toujours bien expliqué et très intéressant.

Je t'ai envoyé un mail à partir de ton espace contact mais je n'ai pas eu de réponse, j'aurai bien aimé avoir ta réponse même si elle est négative.

Merci par avance et continue comme ça,c'est sympa de ta part de nous faire part de tes connaissances.

DevAddict Il y a 2 ans Répondre

Encore un tutoriel de très grande qualité surtout sur un sujet qui n'est pas forcément simple à aborder et à expliquer aux novices. Un grand bravo et continu comme ça, pour le moment tu es le seul qui fais des choses aussi bien et poussées alors ne t'arrêtes pas

MyKiwi Il y a 2 ans Répondre

Salut, très bon tutoriel! Continue comme ça.
PS: pourrais tu faire un tutoriel sur la PDO? avec les requêtes préparer et tout?

bast_65 Il y a 2 ans Répondre

cucualex merci, tu explique beaucoup mieux que moi ^^

cucualex Il y a 2 ans Répondre

Salut graphikart,

Bravo pour ce tuto
Pour l'interet des getters et des setters, il se trouve dans le fait que quand tu declares en private des elements ils sont plus accessibles (comme tu l'as dit) en dehors de la classe. L'interet majeur est quand tu veux que d'autres programmeurs plug des fonctionnalités mais sans pouvoir toucher à ton code ni à tes instances d'objets.

Pour l'autoload c'est assez utile car cela permet d'instancier une classe lors de son utilisation. Ca evite de devoir faire des includes et des requires de partout.
En effet avec un autoload l'instanciation se fait au moment de l'utilisation d'une des methodes et cela de maniere transparente tu as pas besoin de faire des new constament.

Voila j'espere que j'ai été assez clair dans mon explication.
A bientot et merci encore pour ton super boulot

OverSpeed Il y a 2 ans Répondre

Si on augmente le son, on entends de l'écho ... xD
Merci, depuis le temps que j'attendais un tuto vidéo sur la POO .

bast_65 Il y a 2 ans Répondre

Belle présentation de la poo, différent de la plus part des tutos que l'on trouve sur le net, qui eux présente plutôt des chose comme le constructeur getter setter etc... Pk préfères-tu ne pas utiliser ce genre de fonctions et utiliser par exemple une fonction static load pour le require au lieu de __autoload() ? euh jme sens pas très clair la :s

Grafikart Il y a 2 ans

Effectivement ce n'est pas très clair. Je me suis orienté vers un exemple plus "pratique" avec un objet qui peut servir.

Pour les set et get je n'ai jamais trop compris l'intérêt vu que l'on peux accéder aux variable "public"

Par contre l'autoload() je vois pas du tout ce que c'est, si tu peux détailler.

bast_65 Il y a 2 ans

Je ne sais pas expliquer aussi bien que toi mais les getter/setter servent d'après se que j'ai compris a la propreté du code et a la facilité d'utilisation des classe par une tierce personne, elles rajoute une sécurité suplémentaire pour ceux qui utilisent tes classes, "elles permettent d’encapsuler notre code en gérant
l’affectation et la récupération de propriétés d’un objet mais à l’aide
d’une syntaxe différente.
Les méthodes de lecture et d’écriture permettent au développeur
d’appeler de manière transparente ces méthodes comme si ce dernier
ciblait une propriété."==> de "thibault imbert (meme si c'est pour AS3).

autoload ou plutot __autoload() est une fonction qu'ils appelent "fonction magique". Cette fonction la est appeler automatiquement quand on fait new class (elle prend comme parametre le nom de la classe, utilise donc pour faire un require automatiquement). Ces fonction sont apparu avec php 5 certaines plus utile que d'autre (exemple en php4 on devait appeler le constructeur du meme nom que la classe, depuis php5 on peut l'appeler __construct() ...) une liste des fonction magique et de leur utilité(ou pas) ici : http://www.manuelphp.com/php/language.oop5.magic.php

Shadowzone Il y a 2 ans - Répondre

Bonjour Grafikart et tout le monde ici (pour mon premier commentaire

Je viens mettre juste une petite info sur la fonction autoload() en espérant être assez clair dans mon descriptif car j'ai appris la POO PHP5 depuis peu.. :
(PHP5 avancé - édition Eyrolles : très bons exemples concernant la POO)

Il s'agit d'une des fonctions dites "magiques" de PHP5 au même titre que __construct, __destruct, et de biens d'autres ... Elle permet de charger une ou plusieurs classes de façon assez simple en début de script (cf. Exemple ci-dessous). Mais cette fonction est plutôt dépréciée car risques de bugs plus importants (Article : http://www.nexen.net/actualites/php/__autoload ,_loeuvre_du_diable.php).


L'exemple :
(on suppose que l'on à un dossier contenant plusieurs fichiers de classes (tous nommés de cette façon : class.NOM_CLASS.php) et que l'on travail ici sur un fichier nommée test.php)

<?php
//Fonction "magique" autoload()
function __autoload($nomClass) {
require("classes/class.".strtolower($nomClass).".php");
}

//Chargement des classes 'Core' et 'Users'
$core = new Core();
$users = new Users();

//Accès aux éléments
$core->test(); //Fonction test() déclarée dans la classe 'Core'
?>

J'éspère que j'ai pu répondre aux interrogations ambiantes concernant cette fonction assez spéciale il faut dire mais sommes-toutes plutôt pratique pour démarrer en POO PHP. Et désolé pour la longueur de ce post


Bonne continuation à vous tous et surtout à toi Grafikart car tes tutoriels sont toujours un régal :P (surtout ceux concernant des petites astuces sur JQuery)

PS :
La fonction 'find' peut être raccourci de moitié :
...
$fields = "*";
if(isset($data["fields"])) { $fields = $data["fields"]; }
...
peut devenir :
$fields = (isset($data["fields"])) ? $data["fields"] : "*" ;
//opérateur ternaire : $val = (condition) ? "valeur si vrai" : "valeur si faux" ;

agentcobra Il y a 2 ans Répondre

merci beaucoup,
il est génial ton site, depuis que je l'ai vu je suis devenu accro

vive Grafikart

agentcobra

XnEoZ Il y a 2 ans Répondre

Superbe tutoriel, très bien expliqué encore alors que la POO n'est pas forcément facile...

PS : @Grafikart a quand un tutoriel sur l'extension cURL :p ?

Grafikart Il y a 2 ans

Il y a déja un tutoriel sur cURL
http://www.grafikart.fr/tutoriels/video/parser-xml-php-65

XnEoZ Il y a 2 ans - Répondre

Exact dsl, Grafikart :p

Baptiste Il y a 2 ans Répondre

salut!
très sympa ça! pourrait tu faire un tuto pour relier ce tuto à celui sur l'édition de fichiers php? on pourrait supprimer les pages, en recréer, les renommer etc...
merci!
++

Grafikart Il y a 2 ans

A toi de le faire

Baptiste Il y a 2 ans - Répondre

salut,
mais les articles ne sont pas sur une BDD avec le systeme de découpage... pourrait tu faire un tuto sur les bases de Mysql pour gérer des articles, des images etc... car je suis vraiment une brele là dedans! :lol: !! rien que l'accueil de MySql avec varchar, int etc... ça me fait des boutons! ^^
alors un petit simple pour les débutant ça ferait pas de mal

en tout cas encore bravo :d
++

Amaury Il y a 2 ans Répondre

Super sympa !
J'adore, mais je me demandais s'il existait des classes modele assez générique (Qui ne font pas partie d'un CMS en particulier) et qui serai assez proche de ce que tu à fait (en ayant un peu plus de fonctions ?).
Si la réponse est non, ce n'est pas grave. je la ferai moi même, mais j'ai peur d'oublier des fonction essentiel ou de me gourer dans la réalisation et que ma classe devienne plus un frein qu'une aide.

Bref, super tuto !

Grafikart Il y a 2 ans - Répondre

En fait on parle ici plus de library. Il y a par exemple PEAR qui est une extension PHP qui ajoute des objets à PHP.

RezA Il y a 2 ans Répondre

Salut, j'ai pu remarquer que dans votre fonction de sauvegarde, vous preniez les données POST "a la volée", donc admettons que ce code soit adapté à une application pour modifier son propre profil utilisateur, si l'on rajoute un champ par exemple nommé grade (en local), et qu'on lui met comme valeur 'admin', la validation nous mettra donc au statut admin, je pense qu'il faudrait le préciser pour que certaines personnes ne fassent pas cette erreur ^^

Sinon, très bon tuto, un grand bravo, c'est très bien expliqué, un vrai plaisir à regarder :P

RezA Il y a 2 ans

Pas de réponses?

Grafikart Il y a 2 ans - Répondre

Oui ta remarque est exacte. L'idéal c'est de créer un autre tableau avec les champs que l'on veut sauvegarder avant de lancer une sauvegarde. Il est déconseillé d'utiliser POST directement sur des formulaire publics.

tchev Il y a 2 ans Répondre

oui inutile de reup pour cela sa ne dérange pas du tout ^^

Ritter Il y a 2 ans Répondre

Très bon tuto qui va m'aider pour mes études, merci !

tchev Il y a 2 ans Répondre

à 44min25 sec tu as du lancé la musqiue par erreur sa recouvre ta voix ! ^^

Grafikart Il y a 2 ans - Répondre

Effectivement super erreur de montage, je remonte/recalcul et reupload ça dès que je peux, au pire ça ne dure pas jusqu'à la fin.

tchev Il y a 2 ans Répondre

merci!

Laisser un commentaire

Si vous avez une question il est conseillé d'utiliser le forum si vous voulez une réponse sûre.