Проблемы с пространствами имен. Не могу найти класс - PullRequest
0 голосов
/ 03 апреля 2019

Я новичок с пространствами имен, но я действительно не понимаю, почему этот простой код не работает!

protocoloWt / схемы / AuthorSchema.php

namespace protocoloWt\schemas;

class AuthorSchema
{
    protected $resourceType = 'people';

    function __construct()
    {

    }

    public function getId($author)
    {
        /** @var Author $author */
        return $author->authorId;
    }

    public function getAttributes($author)
    {
        /** @var Author $author */
        return [
            'first_name' => $author->firstName,
            'last_name'  => $author->lastName,
        ];
    }
}

protocoloWt / app.php

namespace protocoloWt;
use protocoloWt\schemas\AuthorSchema;

$a = new AuthorSchema();

Я получаю следующую ошибку:

Неустранимая ошибка: класс 'protocoloWt \ schemas \ AuthorSchema' не найден в C: \ XAMPP \ HTDOCS \ wt.uptkd \ protocoloWt \ app.php

Я думаю, что код правильный и должен работать, верно? Но тогда почему я получаю эту ошибку?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Пространства имен не означают автоматическую загрузку, что означает, что вы должны либо включить / потребовать класс

require_once('protocoloWt/schemas/AuthorSchema.php');

или настройте автозагрузчик. Если вы хотите сделать это, я могу привести пример кода! :)

0 голосов
/ 03 апреля 2019

Если вы не используете автозагрузчик (PSR0 / 4) (например, composer, например), вам нужно импортировать файл protocoloWt / schemas / AuthorSchema.php в файл app.php.

Документы композитора-автозагрузки: https://getcomposer.org/doc/01-basic-usage.md#autoloading

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...