Задача автозагрузки класса PHP Slim Framwork - PullRequest
0 голосов
/ 19 февраля 2019

У меня проблема с моим приложением slim (http://www.slimframework.com/)). Когда я пытаюсь загрузить класс базы данных, используя пространство имен, я получаю эту ошибку:

Message: Class 'Craft\Code\CraftDB\Database' not found

У меня есть база данных.php в папке app / config / Database.php

Мой класс базы данных запускается так

namespace Craft\Code\CraftDB;

class Database {

Я пытаюсь использовать его в другом файле:

use Craft\Code\CraftDB as DB;
class MyOtherClass {
    protected $connectDb;
    protected $db;
    public function __construct() {
        $this->connectDb = new DB\Database;
        $this->db = $connectDb->connect();
    }

Мой файл Composer:

"autoload": {
        "psr-4": {
            "Craft\\Code\\": "app/"
        }
    }

Я пытаюсь найти проблему, но я потерян. Пожалуйста, помогите. Спасибо

1 Ответ

0 голосов
/ 19 февраля 2019

Где вы говорите, что ваш файл: app/config/Database.php

Где вы говорите Composer, ваш файл: app/CraftDB/Database.php

Кажется, что здесь просто нет совпадений.На стороне файловой системы у вас есть этот неучтенный уровень config, на стороне пространства имен CraftDB уровень в пространстве имен.

Из вашего описания, я думаю, вам нужно что-то вроде:

"autoload": {
        "psr-4": {
            "Craft\\Code\\CraftDB\\": "app/config/"
        }
    }
...