Création de class en PHP POO

Résolu/Fermé
Bardo - 1 août 2021 à 23:15
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 4 août 2021 à 22:01
Bonjour,
Je suis tout débutant en POO et quand je mets en pratique les instructions données par les tutos je n'arrive à rien.
Je veux créer une class puis entrer des instances dans cette class.
Avec le code ci-dessous , je n'ai pas de plantage à l'exécution mais mon fichier utilisateur.class.php reste désespérément vide .
Quelle âme charitable veut bien me donner un coup de pouce ? Je la remercie d'avance chaleureusement.
<body>
<?php
	echo 'Début des tests';

	function chargerClasse(){
		include 'utilisateur.class.php';
	}

	class Utilisateur {		
		Public $nomutilisateur;
		Public $motdepasse;
		};
require 'utilisateur.class.php';

	$uti1 = new Utilisateur();
	$uti2 = new Utilisateur();

	
spl_autoload_register('chargerClasse');


	echo '<br>Fin des tests ' ;
?>
</body>


Bonne journée à tous.

Configuration: Windows / Firefox 90.0
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
1 août 2021 à 23:28
Bonjour
Que contient le fichier utilisateur.class.php ?
A quoi te sert t'il alors que tu as ecris ta class utilisateur dans le fichier que tu nous montres...?

Au passage, commence par appliquer ceci
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
1
Bonsoir Jordane.
Merci de ta réponse ultra rapide.
Au départ le fichier utilisateur.class.php est un fichier vide . Logiquement il est fait pour contenir la class Utilisateur avec ses instances uti1 et uti2 que je crée. Dans l'état actuel de mes connaissances je pense qu'il me servira plus tard à récupérer ces instances pour leur attribuer des valeurs. Il me servira pour ajouter d'autres class etc ...
Dans mon raisonnement ce fichier est chargé par spl_autoload_register avec des données qui seront récupérables ultérieurement donc il ne devrait pas être vide ...
D'autre part où dois-je mettre ces 3 lignes d'instructuion :
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
il est dit "dans le code de vos pages (en tout premier....) " avant la balise HTML ? Dans le php ?
Encore merci et bonne semaine.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Bardo
2 août 2021 à 00:21
Ton fichier doit contenir la définition de ta classe.
Et c'est tout...
Il ne contiendra pas tes instances....
Les instances c'est du virtuel ça ne se remplit pas dans un fichier...

J'ai l'impression que tu essayes de partir dans des formations de haut niveau alors que tu ne dispose même pas des bases minimum du langage...
Je serais toi je commencerai par des choses plus simple
0
Barda > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
2 août 2021 à 23:05
Bonsoir Jordane.
Ok je vise peut-être trop haut. J'ai appris HTML, PHP MySQL à 100% tutos et j'ai développé un site qui marche bien même si ce n'est pas un modèle de code. Il est bien certain que je n'ai pas la prétention de t'arriver à la cheville (ni à celle de bcp d'autres que je lis sur ce forum) mais je ne vais pas me décourager parce que j'ai "raté une marche" .
Tous les tutos que j'ai pu consulter sur la POO commencent par apprendre ce que sont les classe, les instances, les objets et la manière de les créer. Je n'ai pas encore lu que les instances étaient virtuelles (donc éphémères) et j'ai cru que lorsqu'on se donnait la peine de créer qqchose (les instances) il était logique que ce travail devait être sauvegardé. Tu viens de m'apprendre que ce n'était pas le cas, mea culpa j'étais dans l'erreur.
Par contre tu me dis que les classes sont placées dans ce fameux fichier que j'ai nommé utilisateur.class.php et j'en reviens à mon script car je ne vois pas l'erreur qui fait que ce fichier reste vide (0 octets) , il devrait contenir la class nommée Utilisateur
Merci si tu peux faire quelque chose pour moi .
Cordialement
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Barda
2 août 2021 à 23:18
Le fichier ne va pas s'écrire tout seul...
Il faut que tu mettes le code de ta classe dans ce fichier à la main en écrivant toi tout seul c'est pas automatique
0
Barda > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
3 août 2021 à 00:03
ma question est peut-être bête mais je ne m'attendais pas à cette réponse de ta part
0
Bonsoir Jordan.
Merci pour le code . J'ai enfin compris que les instructions de construction d'une classe devaient être dans le fichier xxx.class.php . J'ai cru que c'est PHP qui construisait lui même ce fichier pour être utilisé ultérieurement.
L'inconvénient des tutos est de ne pouvoir demander des explications à un instructeur et de partir parfois sur une fausse interprétation ...il aurait été dit que ce fichier était comparable, dans le principe, au fichier .css m'aurait certainement bien aidé.
Je suis désolé d'avoir mal compris ta réponse dans laquelle tu me disais qu'il fallait charger le fichier à la main, j'ai cru que tu te moquais de moi ... toutes mes excuses.
Si tu as qqminutes tu iras voir mon site et surtout donne moi des critiques constructives : https://la-souterraine-en-cp.com
Je crois que ce sujet peut-être fermé.
Cordialement
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
4 août 2021 à 22:01
Pour un premier site c'est un bon début.
Par contre, il y a encore un peu de boulot :-)

Le choix des couleurs de certaines pages rend le texte parfois difficile à lire.
Par exemple ici : https://la-souterraine-en-cp.com/source/CP-La%20Sout%20Autres.php

Il serait pas mal aussi de le rendre responsive.
Pour ça, tu peux utiliser un framework css tel que bootstrap
Mais il en existe d'autres : https://codezen.io/best-css-grid-systems-2020/

En attendant, je marque le sujet en Résolu.
0