Переопределение поставщика композитора — невозможно объявить класс, поскольку имя уже используетсяPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Переопределение поставщика композитора — невозможно объявить класс, поскольку имя уже используется

Сообщение Anonymous »

Мне нужно было изменить некоторые файлы поставщиков, что я и сделал следующим образом (раньше это было нормально):
Я копирую файл поставщика в каталог переопределения поставщика за пределами каталог поставщика и измените его в соответствии со своими потребностями. Затем измените композитор.json, добавив исходный файл поставщика в «exclude-from-classmap», и добавьте мой файл в «files».
пример:

Код: Выделить всё

    "autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Routes\\Web\\": "routes/web/"
},
"exclude-from-classmap": [
"vendor/area17/twill/src/Models/Model.php",
"vendor/area17/twill/src/Models/Media.php"
],
"files": [
"vendor-override/twill/Model.php",
"vendor-override/twill/Media.php"
]
},
Теперь моя проблема в том, что "vendor/area17/twill/src/Models/Media.php" наследуется от "vendor/area17/twill/src/Models/Model.php"< /p>
Если я запустил Composer dump-auto, я получаю следующую ошибку:

Код: Выделить всё

PHP Fatal error:  Cannot declare class A17\Twill\Models\Model, because the name is already in use in C:\Database\SourceDB\modulbau-shop\vendor-override\twill\Model.php on line 23
Я также попытался удалить файлы поставщика Model.php и Media.php (для тестирования):
Вместо этого я получаю следующую ошибку:

Код: Выделить всё

In Media.php line 12:

[Error]
Class "A17\Twill\Models\Model" not found

Exception trace:
at C:\Database\SourceDB\modulbau-shop\vendor-override\twill\Media.php:12
require() at C:\Database\SourceDB\modulbau-shop\vendor\composer\autoload_real.php:41
{closure}() at C:\Database\SourceDB\modulbau-shop\vendor\composer\autoload_real.php:45
Мне кажется, что вендор-override/twill/Media.php по какой-то причине все еще ссылается на файл в вендоре (возможно, потому, что они изначально находились в одной папке?)
p>
Я попробовал добавить явный импорт (оператор use в медиа-файл, но это не помогло. Я все равно получаю ошибку «Класс «A17\Twill\Models\Model» не найден»). )
vendor-override/twill/Media.php

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/79278052/composer-vendor-override-cannot-declare-class-because-the-name-is-already-in-u[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»