Bug lors de l'instanciation de classe.

#1
Bonjour,

Après une formation de 6 mois en développement web, je produit ceux de mes associations.
Le site tourne très bien en local, mais j'éprouve des difficultés pour le mettre en ligne ;
c'est la première fois que je m'occupe de l'hébergement.
J'ai eu des difficultés
1- à me connecter à la Base de données,
souci résolu.

2- à modifier les include, require_once...
J'ai trouvé une solution avec :
require_once($_SERVER["DOCUMENT_ROOT"] .'/dossier.fichier.php');

Désormais, mon code s'arrête lorsque j'essaie d'instancier une classe :
$article = new Article($a);
Ca fonctionne très bien en local, mais pas là...


Au final, on a cette structure :
/Entity/Article.php
Code:
namespace Entity;

use PDO;

class Article
{
private attributes;

public function __cunstruct($a)
{
$this->setAttributes($a);
}

[...getters & setters...]
}
/core/autoload.php
Code:
<?php
function inclusionAutomatique($nomDeLaClasse)
{
    include_once($_SERVER['DOCUMENT_ROOT'] . "/" . $nomDeLaClasse . ".php");
}
spl_autoload_register('inclusionAutomatique');
/index.php
Code:
require_once($_SERVER["DOCUMENT_ROOT"] .'/core/autoload.php');

include($_SERVER["DOCUMENT_ROOT"] .'/assets/inc.head.php');
include($_SERVER["DOCUMENT_ROOT"] .'/assets/inc.header.php');

<body>
[...du code...]
$article = new Article($a); //arrêt du code sur la page
[...du code...]
</body>
[...]
En locale, le code fonctionne, mais les url sont absolues.
Pourquoi, ici cela ne fonctionne pas ?

Cordialement
 
#2
Bonjour enlève $_SERVER["DOCUMENT_ROOT"] ta pas besoin de mettre en ligne sur l’hébergement

Pour t'aider utilise ceci

PHP:
<?php
# Check out if have error and fix
error_reporting(E_ALL);
ini_set("display_errors", 1);

code ici
et/ou var_dump('code');
   
?>
PHP:
<?php
require_once($_SERVER["DOCUMENT_ROOT"] .'/core/autoload.php');



?>
remplace ce code par sa

PHP:
<?php

require 'core/autoload.php';


?>
Parce que le autoload de composer pour installer c'est bien "composer require <source>"
 

marckisscool

Active Member
#3
Bonjour,

Après une formation de 6 mois en développement web, je produit ceux de mes associations.
Le site tourne très bien en local, mais j'éprouve des difficultés pour le mettre en ligne ;
c'est la première fois que je m'occupe de l'hébergement.
J'ai eu des difficultés
1- à me connecter à la Base de données,
souci résolu.

2- à modifier les include, require_once...
J'ai trouvé une solution avec :
require_once($_SERVER["DOCUMENT_ROOT"] .'/dossier.fichier.php');

Désormais, mon code s'arrête lorsque j'essaie d'instancier une classe :
$article = new Article($a);
Ca fonctionne très bien en local, mais pas là...


Au final, on a cette structure :
/Entity/Article.php
Code:
namespace Entity;

use PDO;

class Article
{
private attributes;

public function __cunstruct($a)
{
$this->setAttributes($a);
}

[...getters & setters...]
}
/core/autoload.php
Code:
<?php
function inclusionAutomatique($nomDeLaClasse)
{
    include_once($_SERVER['DOCUMENT_ROOT'] . "/" . $nomDeLaClasse . ".php");
}
spl_autoload_register('inclusionAutomatique');
/index.php
Code:
require_once($_SERVER["DOCUMENT_ROOT"] .'/core/autoload.php');

include($_SERVER["DOCUMENT_ROOT"] .'/assets/inc.head.php');
include($_SERVER["DOCUMENT_ROOT"] .'/assets/inc.header.php');

<body>
[...du code...]
$article = new Article($a); //arrêt du code sur la page
[...du code...]
</body>
[...]
En locale, le code fonctionne, mais les url sont absolues.
Pourquoi, ici cela ne fonctionne pas ?

Cordialement
Bonjour,
Le $a est initialisé par qui?
L'erreur dans le serveur apache dit quoi?
 
Haut