У меня есть проект, и мне нужны некоторые пакеты, поэтому я реорганизовал проект для использования PSR-4
.
Вот мой composer.json
:
{
"name": "me/production",
"type": "project",
"authors": [
{
"name": "Me",
"email": "me@me.com"
}
],
"config": {
"platform": {
"php": "5.6.1"
}
},
"autoload": {
"psr-4": {
"API\\": "api/"
}
},
"require": {
"nesbot/carbon": "^2.25"
},
}
это не работает в моих сценариях. Но вот настоящий кикер: я делаю require_once __DIR__ . '/vendor/autoload.php';
в своей консоли php
, и это тоже не работает. Я трижды и четверно проверил путь, автозагрузка есть.
Что я подразумеваю под "не работает"? автозагрузка требуется успешно. Это позволяет мне использовать библиотеки. НО фактические экземпляры приводят к ошибке
Class not found.
Не только для моих классов в пространстве имен API
, которые расположены в верхней части файла. и точно находятся в папке, которой они должны быть, но я также НЕ МОГУ создать экземпляр Carbon. Я могу use Carbon\Carbon
, но любая попытка создания экземпляра потерпит неудачу.
Интересно, что создание экземпляра \Carbon\Carbon
напрямую не завершится неудачей.
Что происходит? Это странно.
Заранее спасибо.
РЕДАКТИРОВАТЬ: я попытался уменьшить загрузчик, я также попытался удалить папку поставщика и переустановить. Все безрезультатно.
РЕДАКТИРОВАТЬ: Может быть, стоит упомянуть, я снизил углерод до ^ 1,21, потому что углерод 2 не поддерживает php 5.6. Но это все еще не работает.
РЕДАКТИРОВАТЬ: Это происходит и с моим пространством имен API, вот пример использования моей реализации API Instagram:
use \API\Insta;
php > var_dump(new Insta);
PHP Fatal error: Class 'Insta' not found in php shell code on line 1
php > var_dump(new \API\Insta);
object(API\Insta)#3 (1) {
["ig_token"]=>
string(51) "A_VALID_TOKEN"
}
php >
РЕДАКТИРОВАТЬ: проблема решенасам по себе он теперь мутировал в один, который меня мало волнует: я могу использовать все, но не в консоли php. Я не уверен, что это исправило.