Constante de repertoire

jesuscontent
Invité n'ayant pas de compte PHPfrance

21 juin 2010, 12:54

Bonjour,

Je m'entraîne en PHP orienté objet et j'ai essayé de recourir à cette technique qui permet apparemment de regrouper les require dans un fichier, pour mieux ranger le code...

Voici le fichier que j'ai
<?php

defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);

defined('SITE_ROOT') ? null :
	define('SITE_ROOT', DS.'C'.DS.'wamp'.DS.'www'.DS.'galerie_photo');
	
defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.DS.'includes');

require_once(LIB_PATH.DS.'config.php');

require_once(LIB_PATH.DS.'fonctions.php');

require_once(LIB_PATH.DS.'session.php');
require_once(LIB_PATH.DS.'database.php');

require_once(LIB_PATH.DS.'user.php');

?>
Et ça c'est les erreurs:


Notice: Use of undefined constant LIB_PATH - assumed 'LIB_PATH' in C:\wamp\www\galerie_photo\includes\database.php on line 2

Notice: Use of undefined constant DS - assumed 'DS' in C:\wamp\www\galerie_photo\includes\database.php on line 2

Warning: require_once(LIB_PATHDSconfig.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\galerie_photo\includes\database.php on line 2

Fatal error: require_once() [function.require]: Failed opening required 'LIB_PATHDSconfig.php' (include_path='.;C:\php5\pear') in C:\wamp\www\galerie_photo\includes\database.php on line 2

La ligne 2:
require_once(LIB_PATH.DS."config.php");
Et le fichier config.php:
<?php

//Constantes de la base de donnée
defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "root");
defined('DB_PASS') ? null : define("DB_PASS", "");
defined('DB_NAME') ? null : define("DB_NAME", "galerie_photo");

?>
Qu'est ce que j'ai mal fait?

Merci.

ViPHP
ViPHP | 5462 Messages

21 juin 2010, 13:18

t'as pas besoin de faire un 2eme require_once dans ton fichier database.php :wink:

jesuscontent
Invité n'ayant pas de compte PHPfrance

22 juin 2010, 14:30

Le hic c'est que dans database.php:
<?php
require_once(LIB_PATH.DS."config.php");

class MySQLDatabase etc
Il n'y a qu'un require_once!

ViPHP
ViPHP | 5462 Messages

22 juin 2010, 14:34

non 2, puisque dans ton premier fichier tu inclus déjà config.php

jesuscontent
Invité n'ayant pas de compte PHPfrance

22 juin 2010, 21:00

Bonsoir,

Je suis peut être laborieux mais, je ne comprends pas.

ViPHP
ViPHP | 5462 Messages

22 juin 2010, 21:30

si t'enleves ton require_once ca marche ?

jesuscontent
Invité n'ayant pas de compte PHPfrance

23 juin 2010, 13:31

Bonjour,

non, ça ne fonctionne pas, et moins trivialement le tutoriel vidéo duquel je fais les exercices fonctionne sans problème avec ce que j'ai rédigé. Le doute que j'ai réside dans la ligne
defined('SITE_ROOT') ? null :
        define('SITE_ROOT', DS.'C'.DS.'wamp'.DS.'www'.DS.'galerie_photo');
N'étant pas expert, il est possible que j'ai mal défini les répertoires ou autre, le repertoire est C:\wamp\www\galerie_photo, peut être une histoire de point virgule?

ViPHP
ViPHP | 5462 Messages

23 juin 2010, 13:34

normalement t'as pas besoin de mettre les path en absolu, essaye sans les constantes pour voir si ca marche

jesuscontent
Invité n'ayant pas de compte PHPfrance

24 juin 2010, 10:48

Bonjour,

Sans les constantes ça marche, mais je veux apprendre à m'en servir et savoir pourquoi là ça déconne.
Quelqu'un d'autre aurait des suggestions?

ViPHP
ViPHP | 5462 Messages

24 juin 2010, 11:09

deja c'est bizarre tes path sont de la forme
\C\wamp\www\galerie_photo\includes

et ca, ca marche pas
c'est

C:\wamp\www\galerie_photo\includes


t'es bien error_reporting = E_ALL | E_STRICT ?