繁体   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