我在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
問題:
是
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 ...
能否請你告訴我到一個網上資源,以幫助我在GitHub上發佈
MyComponent
並且將其提供給symfony的(我猜大多數是隻涉及建立composer.json正確)
謝謝
考慮選擇一個簡單的Symfony的組件如Yaml並遵循它的結構。 – Cerad
謝謝,我確實看過,但我遇到的困難是,對於現有的Symfony組件,我發現該結構只是從組件的根開始,而不是在開發時放置根的結構。我的意思是在'vendors'文件夾中看到'symfony \ symfony \ src \ Symfony \ Component \ Yaml',這是發佈的目錄結構,但是我看不到如何添加'doc','test'和每個組件的'src'文件夾 – scibuff
composer.json允許您指定供應商目錄結構。開發時,讓你自己的目錄結構。在你的情況下,你將擁有一個MyVendor/Component目錄,下面有對象庫。起初令人困惑,希望我能指出你一步一步的教程,但我不知道。 – Cerad