Cara mengurus kemasukan, keperluan dan penggunaan dalam projek ini
P粉652495194
P粉652495194 2024-02-25 18:11:04
0
1
347

Dalam projek PHP tanpa rangka kerja ini, saya mempunyai struktur folder ini: Penyesuai, Kelas dan Model

Fail php "index.php" dilaksanakan daripada direktori akar dan saya menghadapi masalah mengendalikan kelas model dan penyesuai

Fail indeks

<?php

    include('Class/Load.php');

    $connection = MysqlClass::getConnectionMysql();

Pemuatan kelas

<?php

    include(__DIR__ . DIRECTORY_SEPARATOR . 'MysqlClass.php');
    include(__DIR__ . DIRECTORY_SEPARATOR . 'UtilsClass.php');
    include(__DIR__ . DIRECTORY_SEPARATOR . 'EmailClass.php');

Fail kelas 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;
    }


}

Soalannya adalah dalam fail MysqlClass kedua, perlukah saya memasukkan fail di sini ke dalam kelas berbeza yang saya perlukan atau adakah saya perlu melakukan ini dalam fail index.php fail load.php dan memuatkannya dari sana Semua kelas diperlukan dalam baki projek.

P粉652495194
P粉652495194

membalas semua(1)
P粉242535777

Adalah idea yang baik untuk menggunakan autoloader, seperti Komposer.

Pertama, tempat AdapterClassModels 子目录移动到 src 目录下。完全删除 Load.php.

Strukturnya ialah:

index.php
composer.json
src/Class/MysqlClass.php
src/Class/UtilsClass.php
src/Class/EmailClass.php
src/Adapter/...
src/Models/...

Kemudian buat fail composer.json dalam direktori rumah anda:

{
    "autoload": {
        "psr-4": {"Acme\": "src/"}
    }
}

Dalam semua fail kelas, letakkan ruang nama yang betul dan alih keluar semua includerequire ​​panggilan ke:


Jalankan composer install或只是composer dump-autoload,并将autoload.php文件包含在您的中index.php dalam direktori utama anda (alih keluar semua termasuk dan keperluan lain).


Kini anda boleh memanggil kod ini dari mana-mana sahaja dan kelas akan dimuatkan jika perlu:

use Acme/Class/MysqlClass

// ...

$connection = MysqlClass::getConnectionMysql();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan