Не могу запустить инструменты (PHP-Auth / delight-im) внутри поставщика - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь запустить аутентификацию по этому паролю https://github.com/delight-im/PHP-Auth#creating-a-new-instance

Я следую их руководству, а также руководству композитора.

Каталоги:

Main
   |
   ->src
   |   |
   |   ->tools
   |         |
   |         ->authentication
   |         |
   |         ->db
   |
   ->vendor 

композитор

 {
"name": "***",
"autoload": {
    "psr-4": {
        "Source\\": "src/"
    }
},
"authors": [
    {
        "name": "***",
        "email": "***"
    }
],
"require": {
    "delight-im/auth": "dev-master",
    "cboden/ratchet": "^0.4",
    "laravel/laravel": "^5.8",
    "twig/twig":"^2.0",
}

}

Файл в папке аутентификации:

require_once "../../../vendor/autoload.php";

use Source\tools\db;

$dbConfig = new db\dbconfig("users");

$credentials = $dbConfig->setDb();

$pdo_connection =  new PDO("mysql:host=$localhost;dbname=$database_schema",
                   $credentials["UserName"], $credentials["PassWord"]);

$auth = new \Delight\Auth\Auth($pdo_connection);

Файл в папке БД

namespace Source\tools\db;
class dbconfig  
{
  .....
}

Я могу использовать Использовать Source \ tools \db; для определения dbconfig , поэтому я предполагаю, что для этого работает автозагрузка.

Но при попытке использовать эту строку кода $ auth = new \ Delight \ Auth \Auth ($ pdo_connection); Я получаю следующую ошибку: Неустранимая ошибка: Uncaught Ошибка: класс 'Delight \ Auth \ Auth' не найден в (удаленный каталог для конфиденциальности) / src / tools / authentication / validate_login_credentials.php: 17 Трассировка стека: # 0 {main} добавлено в

Я новичок в namespace / composer Пожалуйста, извините меня за это.

Кто-нибудь знает, как исправить эту ошибку?

1 Ответ

1 голос
/ 13 апреля 2019

Я только что попробовал, и это работает таким образом, наверху

require __DIR__ . '/vendor/autoload.php';

После этого конфигурация БД

$db = new \PDO('mysql:dbname=my-database;host=localhost;charset=utf8mb4', 'my-username', 'my-password');

$auth = new \Delight\Auth\Auth($db);

echo get_class($auth);

Нет ошибок, дважды проверьте файл автозагрузки вашего поставщика, похоже, вы вводите неправильный путь.

Обновите ваш файл композитора следующим

"require": {
    "delight-im/auth": "dev-master", // "delight-im/auth": "^8.1"
    "cboden/ratchet": "^0.4",
    "laravel/laravel": "^5.8",
    "twig/twig":"^2.0",
 }

Заменить

"delight-im/auth": "dev-master",

с

"delight-im/auth": "^8.1"

сохранить и выполнить команду обновления композитора.

...