在這個沒有框架的 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
呼叫: