Я создаю приложение в Symfony, которое использует библиотеку, которую я пишу одновременно.Как разработать библиотеки для symfony, сохраняя независимую структуру кода библиотеки
Пока мое приложение создается с помощью symfony, я хочу, чтобы библиотека компонентов была полностью независимой от структуры, поскольку ее необходимо повторно использовать приложениями, которые не обязательно написаны в symfony.
Поэтому у меня есть Symfony сверток, который интегрирует библиотеку (компонент)
Структура папок является следующим
src/MyVendor/
|-- Bundle
| `-- MyComponentBundle
| |-- Controller
| |-- DependencyInjection
| |-- Resources
| | |-- config
| | `-- views
| | `-- Default
| |-- Tests
| `-- Controller
| `-- MyObjectControllerTest.php
| `-- MyComponentBundle.php
`-- Component
`-- MyComponent
|-- doc
|-- src
`-- MyObject.php
|-- test
`-- MyObjectTest.php
|-- .gitignore
|-- composer.json
|-- LICENSE
|-- README.md
`-- phpunit.xml.dist
Вопросы:
Is
MyComponent
структура каталогов правильно, как по стандартам автозагрузки PSR-x? Например, как я используюMyObject
из библиотеки внутри пучка, то есть вMyObjectControllerTest.php
Может
MyObject
находиться в пространстве именMyVendor\MyComponent
? Если нет, как мне изменить структуру каталогов, чтобы (1) я мог использовать это пространство имен и (2), чтобы он мог автоматически загружаться внутриMyObjectControllerTest.php
, т. Е.new MyVendor\MyComponent\MyObject();
будет работать; Прямо сейчас я получаюPHP Fatal error: Class 'MyVendor\MyComponent\MyObject' not found in ...
Не могли бы вы направить меня на интернет-ресурс, чтобы помочь мне опубликовать
MyComponent
на GitHub и сделать его доступным для Symfony (я предполагаю, что большинство, что включает в себя только создание composer.json правильно)
Спасибо
Рассмотрит собирание простого компонента Symfony, такие как Yaml и следуя его структуре. – Cerad
спасибо, я действительно смотрел на это, но сложность, с которой я сталкиваюсь, заключается в том, что с существующими компонентами Symfony я вижу, что структура начинается только с корня компонента, но не с структурой, в которой этот корень помещается во время разработки. Я имею в виду, что я вижу 'symfony \ symfony \ src \ Symfony \ Component \ Yaml' в папке' vendors', которая является опубликованной структурой dir, но я не вижу, как я мог бы добавить 'doc',' test' и 'src' для каждого компонента – scibuff
composer.json позволяет указать структуру каталогов поставщиков. При разработке создайте свою структуру каталогов. В вашем случае у вас будет каталог MyVendor/Component с репозиторием Object под ним. Сначала это сбивает с толку, Wish, я могу указать вам на шаг за шагом учебник, но я не знаю. – Cerad