Aller au contenu
San Andreas Multiplayer
Buthers

Créer son premier panel - La structure

Créer son premier panel - La structure  

4 membres ont voté

  1. 1. Ce tutoriel vous a-t-il été utile ?

    • Extrêmement détaillé et précis, j'en ai appris beaucoup !
    • Bien que je sache désormais manier cette structure, il est assez peu détaillé.
      0
    • Je n'ai strictement rien appris avec ce tutoriel.


Messages recommandés

Créer son premier panel

La structure

 

Sommaire

- Préparation des fichiers

- Un peu de vocabulaire

- Écriture du fichier racine

- Écriture du contrôleur

- Gérer ses modèles et vues

 

Préparation des fichiers

Très souvent, lorsque nous débutons la mise en place d'un projet web, la question principale est:

Comment structurer mon site web ?

Il existe en effet plusieurs moyens de structurer d'une bonne façon un site web tout en respectant la norme:

Modèles - Vues - Contrôleurs

Il faut savoir que tout "vrai" développeur doit savoir structurer son site web de telle sorte à ce qu'il respecte cette

norme; cela permet de rester organisé dans le code source de son site web.

Je vais donc vous "initier" à la structuration (très novice) d'un site web avec plusieurs éléments:

Des dossiers et fichiers, du code HTML, des images, du code Javascript et du code PHP.

Alors vous me direz, pourquoi tant d'éléments même pour un petit projet ?

Sachez que tout projet web requiert au moins du code HTML et des images.

Alors je vous rassure tout de suite, même des gros projets ne recourent pas au Javascript, mais il est bien de ne

pas le négliger; on ne sait jamais si on en a besoin.

Le code PHP ? C'est celui qui fait la liaison client - serveur. Il va nous permettre de gérer cette structure.

 

Nous allons commencer par créer deux dossiers ainsi qu'un fichier:

- Le fichier index.php: Nous allons gérer notre structure depuis celui-ci.

- Le dossier app: Il contiendra tous les éléments "back-end" ou "behind the scene" du projet.

- Le dossier core: Il contiendra tous les éléments "front-end" du projet.

 

Un peu de vocabulaire

Vous venez d'entendre certains mots qui vous ont peut-être interpellé. Sachez que je comprend et je vais vous

les expliquer:

- Le terme "structure": La structure est considérée comme l'ensemble des dossiers/fichiers internes du site web.

- Une structure "3tiers": Aussi appelée MVC, elle divise la structure en 3 parties: c'est une norme d'organisation.

- Le code "back-end": C'est le code qui fait souvent le lien avec le serveur, celui que personne ne peut modifier avec l'inspection d'élément.

- Le code "front-end": Tout simplement ce qui sera affiché sur l'écran de l'utilisateur ou qui sera en lien direct avec.

 

Écriture du fichier racine

Le fichier racine, ici, est le fichier index.php. En effet, il fera la liaison avec l'ensemble de nos pages.

Pour commencer, voici le code source de l'index:

<?php

	$pages = array("premierepage", "deuxiemepage");
	if(isset($_GET["page"]) AND in_array($_GET["page"], $pages))
	{
		include("app/controllers/index/".$_GET["page"].".php");
	}
	else
	{
		header("Location: index.php?page=premierepage");
	}

?>

Place aux explications !

Tout d'abord, j'attribue à une variable que j'appelle $pages un array de deux clés.

Ensuite, je vérifie grâce à la méthode GET si l'url est composée de page et si la page de l'url existe dans l'array de $pages.

Si c'est le cas, on inclut le contrôleur de la page en question dans le dossier app/controllers/index/mapage.php.

Sinon, on redirige vers la page principale: premierepage.

Il vous faut donc mettre en place de nouveaux dossiers et fichiers:

- Le dossier app/controllers: Il gère l'ensemble des contrôleurs du projet.

- Le dossier app/modelsNous verrons plus tard son utilité.

- Le dossier app/data: Il gère les éléments reliés à la base de données.

- Le dossier core/vues: Il contient l'ensemble des éléments HTML de nos pages.

- Le dossier core/img: Il contient l'ensemble des images du projet.

- Le dossier core/js: Il contient l'ensemble des scripts JS du projet.

- Le dossier core/css: Il contient l'ensemble des feuilles CSS du projet.

 

Écriture du contrôleur

Tout d'abord, rendez-vous dans le dossier app/controllers et créez-y un dossier index (conformément à index.php).

Ensuite, écrivez ce code dans un nouveau fichier que vous appellerez premierepage.php dans app/controllers/index:

<?php

	include("app/models/index/premierepage.php");
	include("core/vues/index/premierepage.php");

?>

On inclut ici le modèle et la vue de la page premierepage.php.

Vous l'aurez compris, il vous suffit maintenant de créer un dossier index dans models et vues et dans chacun un fichier

premierepage.php.

 

Gérer ses modèles et vues

Maintenant que la structure de base est construite, nous pouvons écrire notre code dans chacune de nos pages respectives.

Le fichier premierepage.php de models/index comportera l'ensemble des fonctions PHP reliées à cette page.

Commençons par créer une classe dans ce fichier:

<?php

	class PremierePage
	{
		public function direBonjour($texte)
		{
			return $texte;
		}
	}

?>

Le modèle de premierepage.php est enfin prêt. Maintenant, passons à la vue:

<!DOCTYPE HTML>
<html lang="fr">

<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">
	<link rel="stylesheet" type="text/css" href="core/css/index/premierepage.css">
	<title>PremierePage</title>
</head>

<body>
	<?php
		$PremierePage = new PremierePage();
  		echo $PremierePage->direBonjour("Bonjour, bienvenue sur la première page de mon projet !");
	?>
</body>

</html>

J'espère que vous comprenez maintenant l'intérêt du contrôleur, du modèle et de la vue.

Vous pouvez maintenant créer la feuille CSS et commencer votre projet !

Cette action se répète sur chaque page de votre projet.

Pour un espace membre, vous pouvez créer un second fichier racine membre.php et répéter la même action.

 

Je vous remercie de m'avoir lu !

Des questions, des critiques ? J'accepte tout !

A bientôt pour un nouveau tutoriel !

Buthers

  • J'aime 3

Partager ce message


Lien à poster
Partager sur d’autres sites

UP !

J'ai oublié de préciser que dès que vous utilisez ce type de structure, votre url passe de http://monsite.fr/premierepage.php à http://monsite.fr/index.php?page=premierepage.

Vous pouvez vous informer sur la mise en forme d'un routeur en consultant le site de Grafikart: https://www.grafikart.fr/tutoriels/php/router-628 !

Buthers

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 19 heures, Buthers a dit :

$pages = array("premierepage", "deuxiemepage");

Moi j'ai tendance à écrire plutôt comme ça :

$pages = ["premierepage", "deuxiemepage"];

 

Sinon merci pour ce tutoriel !

Modifié par C_far

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 1 minute, C_far a dit :

Moi j'ai tendance à écrire plutôt comme ça :


$pages = ["premierepage", "deuxiemepage"];

 

Sinon merci pour ce tutoriel !

Ce sont deux formes différentes d'arrays mais qui produisent le même résultat au final, à toi de faire ton choix ;) 

Pas de quoi, si tu as des questions n'hésite pas ! 

Buthers

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 9 minutes, Buthers a dit :

Pas de quoi, si tu as des questions n'hésite pas ! 

Aucune :P Je comprends parfaitement ton code :) 

 

Edit : Tu m'as juste fait découvrir la fonction in_array

Modifié par C_far

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 8 minutes, C_far a dit :

Aucune :P Je comprends parfaitement ton code :) 

 

Edit : Tu m'as juste fait découvrir la fonction in_array

C'est vraiment une fonction du feu de dieu je trouve !

Du coup, si la page en question n'est pas dans l'array, ça redirigera vers la page du header, m'enfin je pense que tu l'avait compris ;) 

Le seule bémol, c'est que si l'on rentre une page autre que index.php, ça renverra page inexistante du coup faut bidouiller le .htaccess ;) 

Buthers

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 5 heures, Kush a dit :

Code très propre, bonne initiative merci à toi.

Pas de quoi, tout l'honneur est pour moi ! ;) 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ton tutoriel :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, le tutoriel est bien, c'est bien expliquer et tout ce qui concerne l'organisation (au niveau des fichiers) c'est parfait.

 

Parcontre j'insiste avec ça :

 

Le 11/07/2016 à 17:18, Buthers a dit :

<?php

	class PremierePage
	{
		public function direBonjour($texte)
		{
			return $texte;
		}
	}

?>

 

Tu peux m'expliquer l'intéret de déclarer une "class" ? Dans tout cas y'a qu'1 fonction, mais même s'il y en avait plusieurs, quel est l'intéret ?

A part pour donner un semblant de professionnel mais en soit c'est une perte de temps...

 

Mieux faut tout simplement faire cela en procédural :

"function direBonjour($texte)" > direBonjour("coucou");

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le Thursday, July 14, 2016 à 20:34, SUNSHINE. a dit :

Salut, le tutoriel est bien, c'est bien expliquer et tout ce qui concerne l'organisation (au niveau des fichiers) c'est parfait.

 

Parcontre j'insiste avec ça :

 

Tu peux m'expliquer l'intéret de déclarer une "class" ? Dans tout cas y'a qu'1 fonction, mais même s'il y en avait plusieurs, quel est l'intéret ?

A part pour donner un semblant de professionnel mais en soit c'est une perte de temps...

 

Mieux faut tout simplement faire cela en procédural :

"function direBonjour($texte)" > direBonjour("coucou");

 

 

C'est en effet une critique intéressante et c'est faisable en fonction simple. Cependant, c'est pour montrer comment faire si on veut vraiment faire de l'OO ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 12/07/2016 à 13:09, C_far a dit :

Moi j'ai tendance à écrire plutôt comme ça :


$pages = ["premierepage", "deuxiemepage"];

 

Sinon merci pour ce tutoriel !

Le () est plus récent que le []

Partager ce message


Lien à poster
Partager sur d’autres sites

Commencer par du PHP pur c'est une bonne chose mais après quelques mois d'utilisation, de lecture de documentation sur les fonctions de base de PHP et la compréhension du fonctionnement du protocole HTTP, le mieux est de passer par un framework comme Symfony. C'est déjà, plus professionnel et rapide de développer avec un framework quand on le connaît, sans oublier les outils de débogage et j'en passe...

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 02/09/2017 à 12:52, Iterer a dit :

Commencer par du PHP pur c'est une bonne chose mais après quelques mois d'utilisation, de lecture de documentation sur les fonctions de base de PHP et la compréhension du fonctionnement du protocole HTTP, le mieux est de passer par un framework comme Symfony. C'est déjà, plus professionnel et rapide de développer avec un framework quand on le connaît, sans oublier les outils de débogage et j'en passe...

J'ai réalisé ce tutoriel il y a un bon bout de temps alors que je n'avais que des maigres connaissances dans la POO et l'organisation back-end.

Lorsque j'utilisais cette structure, elle répondait parfaitement aux attentes d'un développeur indépendant, car celle-ci est suffisamment sécurisée, bien que j'aurais pu l'approfondir avec de la réécriture d'url.

 

En ce qui concerne les frameworks:

Tu peux tout-à-fait développer un site sans framework et pour autant avoir des fonctionnalités intéressantes telles que le router et j'en passe.

Certes Symfony est un excellent framework, mais il en existe bien d'autres, et je ne pense pas qu'un développeur novice s'amuserait à jouer avec ce type de framework qui, quand on ne le connaît pas, peut s'avérer plutôt risqué ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 12/09/2017 à 10:24, Buthers a dit :

J'ai réalisé ce tutoriel il y a un bon bout de temps alors que je n'avais que des maigres connaissances dans la POO et l'organisation back-end.

Lorsque j'utilisais cette structure, elle répondait parfaitement aux attentes d'un développeur indépendant, car celle-ci est suffisamment sécurisée, bien que j'aurais pu l'approfondir avec de la réécriture d'url.

 

En ce qui concerne les frameworks:

Tu peux tout-à-fait développer un site sans framework et pour autant avoir des fonctionnalités intéressantes telles que le router et j'en passe.

Certes Symfony est un excellent framework, mais il en existe bien d'autres, et je ne pense pas qu'un développeur novice s'amuserait à jouer avec ce type de framework qui, quand on ne le connaît pas, peut s'avérer plutôt risqué ;)

Il y a beaucoup de choses à gérer sous PHP au niveau sécurité tokens contre les failles de type CRSF, purification des champs textes et des requêtes SQL (XSS), contrôle d'accès, les cookies de session doivent être uniques tant au niveau du nom que du contenu et donc il ne faut pas utiliser celui par défaut et utiliser un hachage plus long, utiliser le cache correctement, hacher ses mots de passe, ajouter un captcha sur certains formulaires sensibles...


Le but de mon message était simplement de rediriger les personnes vers un framework après quelques mois d'utilisation de PHP pur, personnellement j'ai une préférence pour Symfony. Après comme c'est mieux "quand on le connaît" mais en soit si on est à l'aise avec langage, l'utilisation d'un framework n'est pas si terrible en soi.

 

Dans tous les cas c'est un bon tutoriel pour commencer en PHP en utilisant justement le modèle MVC utilisé par une grande majeure partie des frameworks PHP.

Modifié par Iterer
Correction de fautes.
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×