Je crée une application dans Symfony qui utilise une bibliothèque que j'écris en même temps. Pendant que mon application est en cours de construction avec symfony, je veux que la bibliothèque de composants soit complètement indépendante du framework car elle doit être réutilisable par des applications qui ne sont pas nécessairement écrites dans symfony.Comment développer des bibliothèques pour symfony tout en gardant le cadre de code de bibliothèque indépendant
J'ai donc un faisceau de symfony qui intègre la bibliothèque (le composant)
La structure du dossier est suit
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
Questions:
Est-
MyComponent
structure de répertoire correct comme selon les normes de chargement automatique du PSR-x? Par exemple, comment puis-je utiliserMyObject
de la bibliothèque à l'intérieur du paquet, à savoir dansMyObjectControllerTest.php
MyObject
peut résider dans l'espace de nomsMyVendor\MyComponent
? Sinon, comment dois-je modifier la structure du répertoire pour que (1) je puisse utiliser cet espace de noms, et (2) pour qu'il puisse être chargé automatiquement à l'intérieurMyObjectControllerTest.php
, c'est-à-direnew MyVendor\MyComponent\MyObject();
fonctionnera; en ce moment je suis en train dePHP Fatal error: Class 'MyVendor\MyComponent\MyObject' not found in ...
Pourriez-vous s'il vous plaît me diriger vers une ressource en ligne pour me aider à publier
MyComponent
sur github et le rendre disponible à symfony (je devine la plupart d'entre qui implique la mise en place juste composer.json correctement)
Merci
Tenir compte de choisir un composant simple Symfony tel que Yaml et suivant sa structure. – Cerad
merci, je l'ai vu mais la difficulté que j'ai est qu'avec les composants Symfony existants je vois que la structure commence seulement avec la racine du composant, mais pas la structure où cette racine est placée en cours de développement. Je veux dire que dans je vois symfony \ symfony \ Symfony \ Component \ Yaml dans le dossier 'vendeurs 'qui est la structure dir publiée, mais je ne vois pas comment je pourrais ajouter un' doc', 'test' et le dossier 'src' pour chaque composant – scibuff
composer.json vous permet de spécifier la structure du répertoire des fournisseurs. Lors du développement, faites vous propre structure de répertoire. Dans votre cas, vous aurez un répertoire MyVendor/Component avec le dépôt Object en dessous. Il est déroutant au début, je voudrais pouvoir vous diriger vers un tutoriel étape par étape, mais je ne connais pas. – Cerad