Juste une question concernant le cours histoire d'être sur. Sur la fonction get() ou l'on peut passer en paramètre soit un ID en guise de int (la, pas de problème car il s'agit de la clé primaire de ma table PK) mais concernant le nom aucune vérification est faite au préalable savoir si il existe deja. Est ce du au fait que, lors de la création de ma table, j'ai mis UNIQUE KEY
Je demande car je suis allez voir sur la toile et je n'ai rien trouvé concernant ce UNIQUE KEY. Est ce que cela en fait une clé d'identification ou est ce juste pour éviter d'avoir à faire une vérification dans mon code PHP avec une fonction genre exists().
Je crois que unique key signifie que chaque ligne de la colonne(ex. nom d'usage, email, etc.) a une valeur unique, ce qui permet comme le id (primary key) de jouer un rôle d'identifiant de la ligne. La différence entre primary et unique est seulement dans le fait qu'une clé unique accepte les valeurs null, si on n'a pas spécifié NOT NULL. Pour plus d'informations, voir ce cours: https://openclassrooms.com/fr/courses/1959476-administrez-vos-bases-de-donnees-avec-mysql. Et oui, le fait de mettre un unique key sur un attribut qui doit être unique comme un nom d'usager, un email, etc. va faire que si quelqu'un tente de créer un personnage déjà existant, la bdd va renvoyer un false qui pourrait permettre d'avertir au moyen d'un message l'usager de choisir un autre nom. Mais généralement, on aura une méthode un peut plus raffinée de vérification, je crois, comme le exist() du manager, car il y a bien d'autres raisons qui peuvent créer un problème avec la bdd et renvoyer un false sur la requête. Mais, à la base, ce unique key sert à éviter des confusions d'identité dans une bdd. Si deux usagers on le même nom d'usager, ce peut être embêtant. La clé primaire n'est pas toujours connu lors des requêtes, à ce moment la requête peut parfois être accompli au moyen d'un autre attribut qui a un unique key qui lui est accessible: ici l'usager entre son nom d'usager qu'en principe il connait et on s'en sert pour faire un select en dbb qui ira à la bonne ligne sans équivoque.
Je crois que vous avez besoin d'affiner votre méthode de recherche sur internet, ce sujet est largement expliqué dans une "infinité" de sites. Utilisez Google!
Voilà je rencontre un soucis depuis quelques jours sur la mise en ligne d'un site php basé sur le dernier TP du cours POO. Mon hébergeur est 1&1. Pour acceder à mon site comme pour le cour je fais nomDeDomaine/blog/Autoload/ et la bizarrement 1&1 me fait une erreur 404 en me disant que le dossier n'existe pas, alors que dans mon FTP il existe et que en local ça fonctionne correctement.
Quelqu'un aurait une idée où a rencontré se problème?
Salut à vous tous, je suis Chris Precieux, débutant en Php. j'ai un soucis au niveau de l'extension PDO. j'utilise Xampp comme serveur, mais lorsqu'il s'agit d'avoir accès à la base de donnée nommée 'test' j'ai des problèmes je suis allé dans le file php puis dans php.ini pour faire quelques petits réglages comme m'a indiqué le cours, mais toujours le même message d'erreur qui s'affiche. besoin d'aide !!!! :-)
J'ai une questions qui me semble idiote mais je préfère demander pour être sure, pour utiliser 'extends' il faut que les classes soient dans le même fichier ou incluent ?
- Edité par NeoSensEight 26 novembre 2018 à 13:18:36
Pas nécessairement, on peut mettre cette classe ailleurs dans le système de fichier du code et utiliser une système de chargement qui précise quel fichier charger pour faire fonctionner le script et/ou de Namespace et le fait de préciser le Namespace du fichier qui est ailleurs avec un «use /Dossier/classe» va renseigner ton script où trouver la classe qui fait l'extension avec «extends». Évidemment la classe parente peut aussi être dans le même fichier, le script n'a alors pas besoin d'autres informations en autant que la classe est bien écrite avec la syntaxe prévue. Je crois qu'il faut qu'elle précède le code qui en aura besoin. Ce serait à vérifier! Pour des tests, on peut laisser tout dans le même fichier.
- Edité par Chat Botté 28 novembre 2018 à 15:38:03
J'ai tant bien que mal terminé le TP de mise en cache des news mais au momment d'envoyer mon zip, ça ne marche pas ! J'ai le message d'erreur : 'The file "" does not exist". J'ai essayé plusieurs fois, en changeant de navigateur, mais rien y fait. Avez vous le même problème ?
Même avec la version en ligne (http://www.victorthuillier.com/oc/poo/tp_app/?f=Partie+III), j'ai pas mal de 'Fatal Error'. Quelqu'un aurait-il une version fonctionnelle pour que je puisse aborder le TP de mise en cache sur de bonnes bases ?
Sinon par curiosité, est-ce le Framework actuellement utilisé par OpenClassroom ? J'avoue que son architecture est un peu confuse:
- j'ai d'une part des bloc Appli (ici Frontend, et Backend), et ensuite des modules. Ne pouvait-on pas rassembler tous les contrôleurs dans un unique dossier 'controller'. Par analogie avec Symfony, les 'bundles' sont ici les blocs appli, ou les modules ?
- d'autre part, tous les modèles (objets et manager) sont rassemblés ailleurs (dossier 'vendors') ! Du coups, si je récupère mon bloc appli ou module pour le travailler dans un autre projet, ça ne marche plus.
- Enfin, les configurations 'app' et 'route' sont en .xml, est-ce l'usage, ou peut-on aussi utiliser du .ini...voir même un .php spécifique (il y a aussi .yml mais la fonction yaml_parse_file() n'est pas reconnu sur ma version de Wamp). A ce propos, je suis surpris de trouver les paramètres de connexion à la Bdd codé en dur dans le PDOFactory du Framework...
Pour la petite histoire, je recherche un microFramework MVC-Objet exploitable pour ma formation php (exit donc les usines à gaz genre Symfony…). Je pensais utiliser l'OCFram, mais ma version a des bugs.
Après avoir lu et relu les cours sur la POO en PHP, je bloque sur la partie frontEnd :
Lors du lancement du site en utilisant le bootstrap, le layout est bien initié, affiché sur l'écran, mais le <?= content?> renvoie toujours une erreur 404 via le HTTPResponse.
J'ai beau relire chaque fichiers du programme, tout semble correctement écrit. La base de donnée est, elle, également crée et contient les valeurs nécessaires.
En suivant le schéma, et en reprenant chaque fonctions, il semble que le redirect404() (contenu dans la fonction getController() du fichier Application du Framework) soit initié lorsqu'aucune route ne correspond, que la page n'existe donc pas. Mes fichiers XML sont bien existant, au bon endroit, et correctement remplies.
Par ailleurs, mon php_error.log ne me renvoie aucune erreur.
Bref, si vous avez des idées pour m'aiguiller, je vous remercie d'avance!
Je galère depuis quelques jours sur le projet POO et je ne trouves malheureusement pas de réponses. Je parle ici de la partie 3. Des que j'implémente la class ApplicationComponent, j'ai une erreur fatale, comme ici dans la classe BackController : Fatal error: Class 'Blog\ApplicationComponent' not found in /Applications/MAMP/htdocs/blogecrivain/lib/Blog/BackController.php on line 4.
Mes fichiers se trouvent dans un dossier blog. J'ai vérifié, revérifier mais je comprends pas d'où vient l'erreur. Quelqu'un aurait-il la réponse ?
Je tiens à signaler que la correction du TP3 est elle-même fausse : - quand on ajoute une nouvelle news, le cache de la page d'accueil n'est pas supprimé - quand on modifie une news, le cache de la news n'est pas supprimé.
C'est dommage de trouver de telles boulettes dans un TP qui a demandé beaucoup de travail aux étudiants, après un cours lui-même difficile à suivre. OpenClassrooms mérite mieux que ça !
Le cours a l'air bien adapté à un enseignement en présentiel, mais pour travailler en ligne c'est trop verbeux et pas assez imagé. Même en ayant déjà une très bonne maîtrise de Java, j'ai pourtant galéré pour comprendre où l'auteur veut en venir, surtout dans la partie 3 et le TP.
Quelques conseils pour les suivants :
- faites un diagramme sur Dia pour suivre les développements de la partie 3 au fur et à mesure
- pour le TP, vous serez vraiment évalués sur les fonctionnalités que vous aurez ajoutées, pas du tout sur la façon dont vous les aurez codées. De toute façon, le code de départ est tellement orienté POO que pour le modifier, vous êtes obligé de faire de la POO ; donc si votre code marche, c'est que vous avez correctement mis en oeuvre les principes du cours.
- suivez un cours sur la POO dans un autre langage, en complément de celui-ci. Cela consolidera ce qui était flou.
Call me Spaceman
Call me Spaceman
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales