我想知道什麼是最好的方式包括第三方php文件在symfony2。我正在使用不同的php-ajax包來上傳我的symfony2應用程序中的文件。該軟件包提供了一些我需要在我的symfony控制器中使用的php oops代碼。我正在我的控制器中創建該代碼的對象。所以我想知道我可以放置第三方代碼或文件的位置,以及如何在symfony2控制器中包含或創建該代碼的對象。我們是否也在symfony2中使用require或include?如果這是唯一的方法。最好的方法包括第三方文件與Symfony2
回答
我不太確定嘗試將名稱空間添加到第三方庫。例如,Twig不使用名稱空間。而且真的沒有必要。考慮一個例子,你想使用Zend_Framework 1庫中的PDF組件。
在您的應用程序/ autoload.php文件,你會做這樣的事情:
$loader->registerPrefixes(array(
'Twig_Extensions_' => $ws . 'Symfony/vendor/twig-extensions/lib',
'Twig_' => $ws . 'Symfony/vendor/twig/lib',
'Zend_' => $ws . 'ZendFramework-1.0.0/library',
));
// And since Zend internally uses require/include we need to set an include path
ini_set('include_path','.' .
PATH_SEPARATOR . $ws . 'ZendFramework-1.0.0/library'
);
在這一點上,我們應該能夠創建控制器內部的第三部分對象,而讓自動加載系統以尋求照顧,包括類:
$page = new \Zend_Pdf_Page(\Zend_Pdf_Page::SIZE_A4);
$doc->pages[] = $page;
$font1 = \Zend_Pdf_Font::fontWithName(\Zend_Pdf_Font::FONT_HELVETICA);
$font2 = \Zend_Pdf_Font::fontWithName(\Zend_Pdf_Font::FONT_COURIER_BOLD);
你必須使用\來解決缺乏命名空間的。
這個答案確實假設你的第三部分庫遵循或多或少的標準類命名約定。如果它有自己的自動加載功能,那麼也可以從autolaod.php中調用它。如果您不想使用自動加載,那麼只需設置包含路徑並將其包含在內。
很好的答案!我曾經有過這種情況,並且完全像這樣解決了它... – 2012-04-04 09:18:05
@Hakan Deryal。謝謝你的迴應,你能告訴我,如果我在供應商創建一個文件夾作爲第三方,並將我的第三方文件放置在那裏,供應商/第三方/ myfile.php我怎麼能包括它在我的Acme捆綁。 – ScoRpion 2012-04-04 09:56:14
第三方應用程序是否使用名稱空間?你可以通過在文件頂部尋找一行,如'namespace ....'來檢查它。 – 2012-04-04 10:44:35
- 1. CMake的 - 包括第三方文件
- 2. 什麼是最好的方式來包裝第三方類c#
- 3. //當包括第三方的JavaScript庫
- 4. 不能包括第三方jar文件與Maven的Android的插件
- 5. 包括第三方製圖插件與ExtJs 5
- 6. 包括第三方頁眉和頁腳
- 7. 無法導入第三方軟件包
- 8. 如何整合第三方SDK包括.a文件與可可豆莢
- 9. Symfony2爲第三方軟件包生成粗獷
- 10. 無法安裝第三方APK文件
- 11. 第三方與System.Net.Mail.SmtpClient
- 12. AppDomain是一個包裝壞的第三方庫的好方法嗎?
- 13. 最好的方法包括在頁面(JavaScript中,AJAX和jQuery)
- 14. 最好的方法:包括在ActiveRecord4關聯選項
- 15. 與Git的Symfony2項目:最佳方法?
- 16. 我如何包括第三方物流文件在我的模塊的Drupal 7
- 17. 包括SQLConnection在內的方法 - 好方法?
- 18. 包括HTML最簡單的方法
- 19. Symfony2 - 使用第三方庫(SSRS)
- 20. Doxygen包括方法兩次doc文件
- 21. 最好的方法在文件中寫
- 22. 最好的文件上傳方法
- 23. 最好的方法,從文件
- 24. 無法配置Symfony(第三方)包
- 25. 抽象第三方JavaScript API的好方法?
- 26. 包裝第三方DLL
- 27. 包含第三方Jars ANT
- 28. Symfony2包與PSR-0兼容的第三方庫有什麼區別?
- 29. 在angular2中包裝第三方組件
- 30. Laravel:使用第三方軟件包
這是正確的方法。如果一個庫沒有遵循任何命名約定,我會建議開始使用composer([repo](https://github.com/composer/composer),[symfony](https://github.com/symfony/symfony) -標準))。它允許映射任何庫,使自動加載成爲可能,即使這些庫不遵循約定。 – gilden 2012-04-05 07:47:41