在这个没有框架的 PHP 项目中,我有这样的文件夹结构:适配器、类和模型
php 文件“index.php”从根目录执行,我在处理模型和适配器类时遇到问题
索引文件
<?php include('Class/Load.php'); $connection = MysqlClass::getConnectionMysql();
类加载
<?php include(__DIR__ . DIRECTORY_SEPARATOR . 'MysqlClass.php'); include(__DIR__ . DIRECTORY_SEPARATOR . 'UtilsClass.php'); include(__DIR__ . DIRECTORY_SEPARATOR . 'EmailClass.php');
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; } }
问题是在第二个 MysqlClass 文件中,我应该在此处将文件包含到我需要的不同类中,还是应该在 load.php 文件的 index.php 文件中执行此操作并从那里加载我在项目的其余部分中需要的所有类。
使用自动加载器总是一个好主意,例如 作曲家。
首先,将
Adapter
、Class
和Models
子目录移动到src
目录下。完全删除Load.php
。结构将是:
然后在主目录中创建
composer.json
文件:在所有类文件中,放置正确的命名空间并删除所有
include
和require
调用: