Rumah  >  Soal Jawab  >  teks badan

Cara mengurus kemasukan, keperluan dan penggunaan dalam projek ini

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粉652495194P粉652495194260 hari yang lalu316

membalas semua(1)saya akan balas

  • P粉242535777

    P粉2425357772024-02-26 13:40:45

    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();
    

    balas
    0
  • Batalbalas