Я пытаюсь создать собственный пакет многократного использования, следуя замечательному курсу по SymfonyCasts. Но когда я пытаюсь установить его с помощью композитора, рецепты Symfony не применяются. Например, мой пакет вообще не зарегистрирован в config/bundles.php. Я везде читал, что простая установка "type": "symfony-bundle" в композиторе.json должна автоматически запускать рецепты, но в моем случае этого просто не происходит.
Странный факт: рецепты действительны при удалении. Пример:
composer remove chinaskijr/mybundle печатает
Symfony operations: 1 recipe (769c88112592ff8a35644e9520929f21)
- Unconfiguring chinaskijr/mybundle (>=v2.x-dev): From auto-generated recipe
Но для композитора ничего не требуется chinaskijr/mybundle:*@dev
Курс SymfonyCasts make мы устанавливаем его через репозитории "path", но я также пробовал использовать частные репозитории gitea, и результаты были идентичными.
Я также не думаю, что проблема связана с моим Bundle, когда я зарегистрировал его вручную, его код работал правильно.
Вот мой композитор.json
{
"name": "chinaskijr/mybundle",
"type": "symfony-bundle",
"description": "A bundle for practice",
"version": "v2.x-dev",
"authors": [
{"name": "chinaskijr", "role": "Owner"},
],
"require": {
"php": "^7.2"
},
"autoload": {
"psr-4": {"chinaskijr\\mybundle\\": ""}
}
}
Большое спасибо за ответ.
РЕДАКТИРОВАТЬ:
Я не уверен, что проблема здесь, потому что я пытался установить ее в разных проектах, но она никогда не работала. Вот, например, на symfony/skeleton.
{
"type": "project",
"license": "proprietary",
"repositories": [
{"type": "path", "url": "../mybundle"}
],
"require": {
"php": "^7.2",
"ext-ctype": "*",
"ext-iconv": "*",
"chinaskijr/mybundle": "*@dev",
"symfony/console": "5.0.*",
"symfony/dotenv": "5.0.*",
"symfony/flex": "^1.3.1",
"symfony/framework-bundle": "5.0.*",
"symfony/yaml": "5.0.*"
},
"require-dev": {
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"paragonie/random_compat": "2.*",
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "5.0.*"
}
}
}
EDIT2: есть структура. После активации вручную службы подключаются автоматически, я могу получить к ним доступ из контейнера и получить конфигурацию.
Все пространства имен имеют префикс chinaskijr\mybundle\ после PSR-0
.
├── composer.json
├── Controller
│ └── MyBundleController.php
├── DependencyInjection
│ ├── Configuration.php
│ └── MyBundleExtension.php
├── MyBundleBundle.php
├── README.md
└── Resources
├── config
│ └── services.xml
└── templates
└── index.html.twig
Подробнее здесь: https://stackoverflow.com/questions/617 ... tom-bundle
Рецепты Symfony не применяются при установке пользовательского пакета. ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
PIP будет удалять зависимости от пакета, если он не удастся при установке пакета?
Anonymous » » в форуме Python - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PIP будет удалять зависимости от пакета, если он не удастся при установке пакета?
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PIP будет удалять зависимости от пакета, если он не удастся при установке пакета?
Anonymous » » в форуме Python - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-