Aller au menu - Aller au contenu

[MVC] Gestion de mêmes tâches sur toutes les pages

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Résolu Le problème de ce sujet a été résolu

Offre d'emploi : Développeur Web PHP/Drupal (H/F)

Page 1  2  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1  2  Suivante
Hors ligne remontees # Posté le 04/02/2012 à 22:19:06
Vive Symfony2 !
Avatar

Bonjour,

Je suis en train de travailler l'architecture MVC en procédural. Cependant, je me demande comment intégrer des idées comme "mettre à jour l'heure de dernier accès du site SI t'es connecté" qui comprend une requête SQL. Dois-je faire une fonction dans mon dossier modele et intégrer et exécuter cette fonction dans tous les contrôleurs ? Et pour des actions comme "vérifier si le membre est connecté SINON envoyer vers la page de connexion en gardant en session la page où il était pour le rediriger dessus".

Merci pour vos réponses. :)

remontees

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Publicité # Posté le 04/02/2012 à 22:19:06

Hors ligne MrKooky # Posté le 04/02/2012 à 22:25:43
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Salut.
Tu peux créer une sorte de "helper", un fichier externe qui fait appel aux modèles et qui est appelé depuis un contrôleur pour faire ça.
Et dans le contrôleur, tu fais un truc genre :
Si Connecté() -> ..
Sinon ...
 
Hors ligne remontees # Posté le 04/02/2012 à 22:28:25
Vive Symfony2 !
Avatar

Citation : MrKooky
Salut.
Tu peux créer une sorte de "helper", un fichier externe qui fait appel aux modèles et qui est appelé depuis un contrôleur pour faire ça.
Et dans le contrôleur, tu fais un truc genre :
Si Connecté() -> ..
Sinon ...

Comment ça qui appelle les modèles ? Je comprends pas tout le concept.

Voici le code qu'il faudrait que je mettes sur chaque page :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
function initOutputFilter() {
   ob_start('ob_gzhandler');
   register_shutdown_function('ob_end_flush');
}

initOutputFilter();
// On fait l'inverse des magic_quotes
function remove_magic_quotes_gpc(&$value)
{
	$value = stripslashes($value);
}
array_walk_recursive($_GET, 'remove_magic_quotes_gpc');
array_walk_recursive($_POST, 'remove_magic_quotes_gpc');
array_walk_recursive($_COOKIE, 'remove_magic_quotes_gpc');
//
// Le titre de la page maintenant !
$title = null;
function setTitle($titre)
{
	if (isset($titre))
		$title = $titre;
}

// Maintenant le contenu de la balise meta
$head = null;
function setHead($balise)
{
	if (isset($balise))
		$head .= $balise;
}

Pour la function setHead, c'est pour ajouter du contenu après si besoin au head, mais je sais pas comment la rédiger. :(
Édité le 04/02/2012 à 22:36:01 par remontees

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 04/02/2012 à 23:23:37
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Tu c'est ce que c'est qu'un modèle, au moins ? C'est le "M" dans "MVC", c'est là qu'il y a toutes tes requêtes (My)SQL.

Tu crées un dossier /helper à la racine, avec dedans "header.php". Dedans tu mets ce code là, puis dans ton contrôleur un "include('../helper/header.php')".
 
Hors ligne remontees # Posté le 05/02/2012 à 14:58:46
Vive Symfony2 !
Avatar

Citation : MrKooky
Tu c'est ce que c'est qu'un modèle, au moins ? C'est le "M" dans "MVC", c'est là qu'il y a toutes tes requêtes (My)SQL.

Tu crées un dossier /helper à la racine, avec dedans "header.php". Dedans tu mets ce code là, puis dans ton contrôleur un "include('../helper/header.php')".

Dans mon helper je mets aussi tout ça ? :
Secret (cliquez pour afficher)
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
function initOutputFilter() {
   ob_start('ob_gzhandler');
   register_shutdown_function('ob_end_flush');
}

initOutputFilter();
// On fait l'inverse des magic_quotes
function remove_magic_quotes_gpc(&$value)
{
	$value = stripslashes($value);
}
array_walk_recursive($_GET, 'remove_magic_quotes_gpc');
array_walk_recursive($_POST, 'remove_magic_quotes_gpc');
array_walk_recursive($_COOKIE, 'remove_magic_quotes_gpc');
//
// Le titre de la page maintenant !
$title = null;
function setTitle($titre)
{
	if (isset($titre))
		$title = $titre;
}

// Maintenant le contenu de la balise meta
$head = null;
function setHead($balise)
{
	if (isset($balise))
		$head .= $balise;
}

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 16:11:26
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Hors ligne remontees # Posté le 05/02/2012 à 16:19:04
Vive Symfony2 !
Avatar

Citation : MrKooky
Ouip.

Et mon modèle je le mets aussi dans le helper ?

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 17:33:26
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Hors ligne remontees # Posté le 05/02/2012 à 17:50:17
Vive Symfony2 !
Avatar

Citation : MrKooky
Non !

Le modèle avec la mise à jour de la dernière visite que je dois utiliser sur chaque page je le mets où ?

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 18:25:26
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Hors ligne remontees # Posté le 05/02/2012 à 18:35:20
Vive Symfony2 !
Avatar

Citation : MrKooky
Dans les modèles. Citation : MrKooky
Tu peux créer une sorte de "helper", un fichier externe qui fait appel aux modèles


Je les mets où ces modèles spécifiques aux helpers ?

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 18:54:47
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Ils ne sont pas spécifiques. Ce sont les modèles normaux !! "MVC" comme ModèleVueContrôleur !
 
Hors ligne remontees # Posté le 05/02/2012 à 18:56:49
Vive Symfony2 !
Avatar

Citation : MrKooky
Ils ne sont pas spécifiques. Ce sont les modèles normaux !! "MVC" comme ModèleVueContrôleur !

Non mon modèle pour ma requête modifier la date/heure de dernière visite. Je dois mettre ça sur toutes les pages.

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 19:36:52
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

>< >< ><
Helper :
Code : Autre
1
2
3
4
<?php include('modeles/monmodele.php');
$res = maRequeteDuModele();
if ($res ...) -> ...
else -> ...
 
Hors ligne gnuzat # Posté le 05/02/2012 à 19:52:02
Code propre
Avatar

Études : Epitech Paris

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Ce que MrKooky tente de t'expliquer, c'est que d'après ce que tu dis, tu as :
  • MVC pour modèle : gestion de la partie logique (requête vers base de données, etc...)
  • MVC pour Vue : affichage des pages dans des templates (HTML)
  • MVC pour Contrôlleur : gestion du routing, des requêtes et des réponses


Tu as une requête pour modifier la date et l'heure ? Mets là dans ta partie modèle, comme tu fais d'habitude.
Tu veux qu'elle soit inclue dans toute les pages ? Crée un "Helper" : un fichier php dans lequel tu appelles ta requête qui est dans ton modèle.
Ce Helper est à include dans toutes les vues.

Coder proprement ne tient finalement qu'à peu de choses :
  • Bien choisir ses noms ;
  • séparer les préoccupations différentes ;
  • regrouper les redondances.
 
Hors ligne remontees # Posté le 05/02/2012 à 19:55:46
Vive Symfony2 !
Avatar

Citation : MrKooky
>< >< ><
Helper :
Code : Autre
1
2
3
4
<?php include('modeles/monmodele.php');
$res = maRequeteDuModele();
if ($res ...) -> ...
else -> ...

Et je le mets dans quel dossier du dossier modele. Je fais un dossier helper dans le dossier modele pour stocker tous mes modeles qui vont avec mes helpers ?

Et pour la configuration : je fais un helper config.php ?

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 20:08:13
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Pour les dossiers :
/root/
/root/controleurs/
/root/modeles/
/root/vues/
/root/helpers/
/root/config/
 
Hors ligne remontees # Posté le 05/02/2012 à 20:55:17
Vive Symfony2 !
Avatar

Citation : MrKooky
Pour les dossiers :
/root/
/root/controleurs/
/root/modeles/
/root/vues/
/root/helpers/
/root/config/

Oui, mais après dans les dossiers je fais des sous-dossiers par nom de module. C'est pourquoi je sais pas comment nommer le dossier qui va contenir les modeles pour les helpers.

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 05/02/2012 à 21:10:15
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Hors ligne remontees # Posté le 05/02/2012 à 21:36:58
Vive Symfony2 !
Avatar

Citation : MrKooky
C'est un détail minimaliste. Pour l'en-tête, un seul fichier "module" suffit.

Je parle pas de fichiers mais de dossiers. Dans mon organisation, j'ai un dossier par module, que ce soit dans le dossier modele, vue ou controleur. Donc je me demandais si je devais mettre mon modele pour le helper dans le dossier modele/helper

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne remontees # Posté le 07/02/2012 à 07:44:55
Vive Symfony2 !
Avatar

J'ai fait un controleur général :
Secret (cliquez pour afficher)

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Contrôleur générique, de base !
// lecture config
require 'config.php';
function protect_data($donnees, $type = null)
{
	if ($type = 'int')
		return (int) $donnees;
	
	if ($type = 'bool')
		return $donnees;
		
	else
		return mysql_real_escape_string($donnees);
}

if (isset($_SESSION['membre_id']))
{
	// On met à jour la dernière visite
	$pseudo = protect_data($_SESSION['pseudo']);
	require '/modele/connexion_sql.php';
}
// on démarre le système des sessions
session_start();
include '/modele/up_date_connect.php';



Avec le modele de mise à jour de dernière visite :
Secret (cliquez pour afficher)

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
function up_date_connect($pseudo)
{
	if (is_string($pseudo))
		mysql_query("UPDATE membres SET derniere_connexion = NOW() WHERE pseudo = '$pseudo'");
		if(mysql_affected_rows() = 0)
			trigger_error
	
	else
		trigger_error('Le pseudo n\'est pas une chaine de caractères !', E_WARNING);
}


Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne gnuzat # Posté le 07/02/2012 à 10:05:02
Code propre
Avatar

Études : Epitech Paris

Le mieux serait de créer un dossier helper, qui contiendra aussi un dossier par module, non ?

Coder proprement ne tient finalement qu'à peu de choses :
  • Bien choisir ses noms ;
  • séparer les préoccupations différentes ;
  • regrouper les redondances.
 
Hors ligne remontees # Posté le 07/02/2012 à 17:40:04
Vive Symfony2 !
Avatar

Citation : gnuzat
Le mieux serait de créer un dossier helper, qui contiendra aussi un dossier par module, non ?

Ah bon ? Pourquoi ? Et est-ce que mes fichiers présentés respectent bien le MVC ?

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne gnuzat # Posté le 08/02/2012 à 11:16:21
Code propre
Avatar

Études : Epitech Paris

Oui, il n'y a pas de problèmes là-dessus.
Les Helpers, ce sont juste des morceaux de codes que tu appelles dans tes Vues.
Donc ils ont le droit à leur dossier à part.
Et comme tu fais un dossier par module dans chaque dossier Vue, Modèle et Contrôlleur, tu devrais aussi créer un dossier par module dans ton dossier Helper.

Coder proprement ne tient finalement qu'à peu de choses :
  • Bien choisir ses noms ;
  • séparer les préoccupations différentes ;
  • regrouper les redondances.
 
Hors ligne Tracker # Posté le 08/02/2012 à 11:22:49
Avatar

Études : Université de Lyon

Citation : gnuzat
Les Helpers, ce sont juste des morceaux de codes que tu appelles dans tes Vues.

Tu peux aussi faire des helpers d'action ...

Avec MVC dès que tu veux faire un truc qui sort du principe tu fais un helper,
résultat MVC = L'art de développer des helpers... CQFD...

T.

Un peu de lecture: PHP // MySQL // JavaScript // SQL
Cherche Job en télétravail ou près de Lorient (56)
 
Hors ligne remontees # Posté le 08/02/2012 à 13:57:55
Vive Symfony2 !
Avatar

Citation : Tracker
Citation : gnuzat
Les Helpers, ce sont juste des morceaux de codes que tu appelles dans tes Vues.

Tu peux aussi faire des helpers d'action ...

Avec MVC dès que tu veux faire un truc qui sort du principe tu fais un helper,
résultat MVC = L'art de développer des helpers... CQFD...

T.

J'ai compris, les helpers, c'est des bibliothèques de fonctions classées par thèmes. Mais regardez mon fichier global.php. Comment en faire des helpers ?

Voici mon premier helper (donnees.php) :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// Helper données
function protect_data($donnees, $type = null)
{
	if ($type = 'int')
		return (int) $donnees;
	
	if ($type = 'bool')
		return (bool) $donnees;
		
	else
		return mysql_real_escape_string($donnees);
}

function set_vue($module, $action)
{
	$chemin = '../vues/' . $module . '/' . $action;
	
	if (file_exists($chemin))
	{
		include $chemin;
	}
	else
	{
		error_error('La vue n\'existe pas.');
	}
}


Et après je pensais inclure mes helpers dans un controleur global, non ?
Et mon fichier config.php, il va dans les helpers ?

Et un autre helper sur la gestion des erreurs (je veux pas la gestion archaïque par PHP qui me fait pas de belles erreurs) :
Secret (cliquez pour afficher)

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// Helper affichage erreurs
function error_warning($texte_error)
{
	if (DISPLAY_ERRORS == true)
	{
		echo '<p class="cadre_error">Le script a rencontré l\'erreur suivante :<br />' . $texte_error . '</p>';
	}
}

function error_error($texte_error)
{
	if (DISPLAY_ERRORS = true)
	{
		echo '<p class="cadre_error">Le script a rencontré l\'erreur très grave suivante et a arrêté en conséquence le script :<br />' . $texte_error . '</p>';
		exit;
	}
	
	else
	{
		echo '<p class="cadre_error">Le script a rencontré une grave erreur et s\'est automatiquement arrêté. Veuillez envoyer un mail grâce au formulaire de contact du site à l\'adresse <a href="/contact.php" title="Formulaire de contact">suivante</a>. N\'oubliez pas de joindre à votre mail l\'adresse de la page actuelle qui va s\'afficher ici :<br />' . URL_SITE . '' . $_SERVER['REQUEST_URI'] . '</p>';
		exit;
	}
}

Édité le 08/02/2012 à 16:40:28 par remontees

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne MrKooky # Posté le 08/02/2012 à 16:45:17
10h
Avatar
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : Paris 6 - Université Pierre et Marie Curie (Jussieu)

Salut.
Non, tu inclus le helper juste quand tu en as besoin, pas à un autre moment, ni avant, ni après.
Le helper traduit un besoin d'une (ou plusieures) fonction(s), et donc tu t'en sers uniquement lorsque tu as besoin de t'en servir.
 
Hors ligne remontees # Posté le 08/02/2012 à 19:54:20
Vive Symfony2 !
Avatar

Citation : MrKooky
Salut.
Non, tu inclus le helper juste quand tu en as besoin, pas à un autre moment, ni avant, ni après.
Le helper traduit un besoin d'une (ou plusieures) fonction(s), et donc tu t'en sers uniquement lorsque tu as besoin de t'en servir.

Si j'ai besoin de ces fonctions sur toutes les pages ? Et est-ce une bonne idée mon controleur général ?

J'ai aussi mis à jour mon système d'erreurs pour un système fonctionnant avec les erreurs PHP :
Secret (cliquez pour afficher)

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
// Helper affichage erreurs
function my_error_handler($no, $str, $file, $line)
{
	if (DISPLAY_ERRORS = true)
	{
		switch($no)
		{
			// Erreur fatale
			case E_USER_ERROR:
				echo '<p class="cadre_error">Erreur fatale : '.$str.'.</p>';
				exit; // On arrête le script
				break;
        
			// Avertissement
			case E_USER_WARNING:
				echo '<p class="cadre_error">Avertissement : '.$str.'</p>';
				break;
        
			// Note
			case E_USER_NOTICE:
				echo '<p class="cadre_warning"><Note : '.$str.'</p>';
				break;
        
			// Erreur générée par PHP
			default:
				echo '<p class="cadre_error">Erreur inconnue ['.$no.'] : '.$str.'<br/>';
				echo 'Dans le fichier : "'.$file.'", à la ligne '.$line.'.</p>';
				break;
		}
	}
    
	else
	{
		switch($no)
		{
			// Erreur fatale
			case E_USER_ERROR:
				echo '<p class="cadre_error">Erreur grave ! La page n\'a pas pu être chargée. Veuillez en avertir l\'administrateur du site par <a href="../contact.php" title="Formulaire de contact">le formulaire de contact</a> en indiquant la page chargée.</p>';
				exit; // On arrête le script
				break;
        
			// Avertissement
			case E_USER_WARNING:
				echo '<p class="cadre_error">Avertissement ! La page est buguée. Veuillez en avertir l\'administrateur du site par <a href="../contact.php" title="Formulaire de contact">le formulaire de contact</a> en indiquant la page chargée.</p>';
				break;
        
			// Note
			case E_USER_NOTICE:
				echo '<p class="cadre_warning">Erreur peu grave. Veuillez tout de même en avertir l\'administrateur du site par <a href="../contact.php" title="Formulaire de contact">le formulaire de contact</a> en indiquant la page chargée.</p>';
				break;
        
			// Erreur générée par PHP
			default:
				echo '<p class="cadre_error">Erreur inconnue potentiellement grave. Veuillez en avertir l\'administrateur du site par <a href="../contact.php" title="Formulaire de contact">le formulaire de contact</a> en indiquant la page chargée.</p>';
				break;
		}
	}
}


Il fait partie du helper erreurs.php

Et dans le controleur général :
Code : PHP
1
2
3
4
<?php
// [...]
require_once '/helpers/erreurs.php';
set_error_handler('my_error_handler');
Édité le 08/02/2012 à 20:10:15 par remontees

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 
Hors ligne gnuzat # Posté le 08/02/2012 à 22:09:52
Code propre
Avatar

Études : Epitech Paris

En fait, c'est pas vraiment dans un contrôlleur que la gestion d'erreur devrait aller...
C'est plus dans ton application (ton index.php si tu veux).

Coder proprement ne tient finalement qu'à peu de choses :
  • Bien choisir ses noms ;
  • séparer les préoccupations différentes ;
  • regrouper les redondances.
 
Hors ligne remontees # Posté le 08/02/2012 à 22:17:49
Vive Symfony2 !
Avatar

Citation : gnuzat
En fait, c'est pas vraiment dans un contrôlleur que la gestion d'erreur devrait aller...
C'est plus dans ton application (ton index.php si tu veux).

Je comprends pas. Je mets la gestion d'erreurs dans le contrôleur général pour que tous les contrôleurs aient la gestion d'erreurs.

Pensez à indiquer les messages qui vous ont aidé et à indiquer vos problèmes résolus ;)
XHTML 1.0/CSS <= 2 : IIIIIIIIII
PHP/MySQL : IIIIIIIIII
Javascript : IIIIIIIIII
HTML5/CSS3 : IIIIIIIIII



Citation
Je sais plus ce que j'écrivais ! :)
Qui que quoi dont où
Alors j'ai activé la prévisualisation automatique !
Citation : Moi
Eh oui

Et maintenant je suis tranquille !



Mon site : http://remontees.free.fr
 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx