簡體   English   中英

PHP Composer-php-sql-query-builder

[英]PHP Composer - php-sql-query-builder

我只是想出了如何安裝和使用PHP作曲家,並用它來將php-sql-query-builder安裝到我的項目中。 系統創建了vendor文件夾等。但是在使用包中的類時出現了問題。 它給了我以下錯誤,關於如何解決這個問題的任何建議?

Fatal error: Uncaught Error: Class 'NilPortugues\Sql\QueryBuilder\Builder\GenericBuilder' not found in D:\Documents\CadetPortal\php\lib\login.class.php on line 15

Login.class.php

    require_once ("core.class.php");
    require_once ("../../vendor/autoload.php");

    use NilPortugues\Sql\QueryBuilder\Builder\GenericBuilder;

    class LoginSystem {
        private $core;
        private $builder;
        private $config;

        function __construct(){
            $this->core = new coreFunctions();
            $this->builder = new GenericBuilder();
            $this->config = require('core.config.php');
        }
//....
    }

編輯

fncregister.php

require_once "../../vendor/autoload.php";
$LoginManager = new \ThomasSmyth\LoginSystem();

echo $LoginManager->Register($_POST["StrSurname"], $_POST["StrForename"], $_POST["StrEmail"], $_POST["StrPassword"], $_POST["DteDoB"], $_POST["StrGender"], $_POST["StrToken"]);

composer.json

{
    "require": {
        "nilportugues/sql-query-builder": "^1.5"
    },
    "autoload": {
        "psr-4": {
            "ThomasSmyth\\": "php/lib/"
        }
    }
}

您的類源文件中根本不應該包含任何require_once語句。 請遵循PSR-4規范進行命名。 將您的類放在命名空間中,以避免與您可能通過作曲家包括的其他類沖突。 然后將一個類放在一個文件中,命名與該類相同。 例如,LoginSystem類應位於名為LoginSystem.php的文件中。

namespace MyNamespace;

class LoginSystem
{
    ...
}

然后設置您的composer.json以將您的命名空間指向您的源目錄:

"autoload": {
    "psr-4": {
        "MyNamespace\\": "src/"
    }
},

現在,您的主應用程序調用程序或前端控制器應該是包含自動加載器的唯一位置:

require_once 'vendor/autoload.php';
$login = new \MyNamespace\LoginSystem();
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM