Dans ce projet PHP sans framework, j'ai cette structure de dossiers : Adaptateurs, Classes et Modèles
Le fichier php "index.php" est exécuté depuis le répertoire racine et j'ai un problème pour gérer les classes de modèle et d'adaptateur
Fichier d'index
<?php include('Class/Load.php'); $connection = MysqlClass::getConnectionMysql();
Chargement des cours
<?php include(__DIR__ . DIRECTORY_SEPARATOR . 'MysqlClass.php'); include(__DIR__ . DIRECTORY_SEPARATOR . 'UtilsClass.php'); include(__DIR__ . DIRECTORY_SEPARATOR . 'EmailClass.php');
Fichier de classe MySQL
<?php include ('UtilsClass.php'); class MysqlClass { /** * @return PDO */ public static function getConnectionMysql(): PDO { $dbhost = ReadEnvFileClass::getConfig('MYSQL_LOCAL_HOST'); $dbuser = ReadEnvFileClass::getConfig('MYSQL_LOCAL_USER'); $dbpass = ReadEnvFileClass::getConfig('MYSQL_LOCAL_PWD'); $dbname = ReadEnvFileClass::getConfig('MYSQL_LOCAL_DBNAME'); try { $dsn = "mysql:host=$dbhost;dbname=$dbname"; $dbh = new PDO($dsn, $dbuser, $dbpass); } catch (PDOException $e){ var_dump($dbhost,$dbuser,$dbpass); echo $e->getMessage(); } return $dbh; } }
Le problème réside dans le deuxième fichier MysqlClass, dois-je inclure le fichier ici dans les différentes classes dont j'ai besoin ou dois-je le faire dans le fichier index.php du fichier load.php et le charger à partir de là Toutes les classes nécessaires dans le reste du projet.
C'est toujours une bonne idée d'utiliser un chargeur automatique, tel que Composer.
Tout d'abord, placez
Adapter
、Class
和Models
子目录移动到src
目录下。完全删除Load.php
.La structure sera :
Créez ensuite le fichier
composer.json
dans votre répertoire personnel :Dans tous les fichiers de classe, mettez le bon espace de noms et supprimez tous les
include
和require
appels à :