Tôi muốn biết Cách tốt nhất để bao gồm các tệp php của bên thứ 3 trong symfony2 là gì. Tôi đang sử dụng một gói php - ajax khác để tải lên các tập tin trong ứng dụng symfony2 của tôi. Các gói phần mềm cung cấp cho tôi một số mã php oops mà tôi cần phải sử dụng trong bộ điều khiển symfony của tôi. Tôi đang tạo ra các đối tượng của mã đó trong bộ điều khiển của tôi. Vì vậy, tôi muốn biết nơi tôi có thể đặt mã của bên thứ ba hoặc tập tin và làm thế nào tôi có thể bao gồm hoặc tạo các đối tượng của mã đó trong bộ điều khiển symfony2 của tôi. Chúng tôi có sử dụng yêu cầu hay bao gồm trong symfony2 không. Nếu đó là cách tiếp cận duy nhất.Cách tiếp cận tốt nhất Để bao gồm các tệp của bên thứ ba với Symfony2
Trả lời
Tôi không chắc chắn về việc cố gắng thêm không gian tên vào thư viện của bên thứ ba. Ví dụ, Twig không sử dụng không gian tên. Và thực sự không cần thiết. Hãy xem xét ví dụ một trường hợp bạn muốn sử dụng thành phần PDF từ thư viện Zend_Framework 1.
Trong ứng dụng tập tin của bạn/autoload.php bạn sẽ làm điều gì đó như:
$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'
);
Tại thời điểm này, chúng ta sẽ có thể tạo các đối tượng phần thứ 3 bên trong của bộ điều khiển trong khi cho phép hệ thống tự động load chăm sóc và tìm kiếm bao gồm các lớp học:
$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);
Bạn phải sử dụng \ để tránh xung quanh việc thiếu không gian tên.
Câu trả lời này giả định rằng thư viện phần thứ ba của bạn tuân theo quy ước đặt tên lớp tiêu chuẩn nhiều hơn hoặc ít hơn. Nếu nó có chức năng tự động tải riêng của nó thì chỉ cần gọi nó từ autolaod.php là tốt. Và nếu bạn không muốn sử dụng tính năng tự động tải thì chỉ cần đặt đường dẫn bao gồm và bao gồm.
The documentation giải thích chi tiết cấu trúc thư mục.
Về cơ bản, bạn có thể đặt chúng ở bất cứ đâu bạn muốn, nhưng vì mục đích nhất quán và tuân theo các phương pháp hay nhất, bạn nên đặt thư viện của bên thứ ba vào thư mục vendor/
.
Hơn bạn có thể bao gồm các tệp có liên quan với không gian tên.
Câu trả lời hay! Tôi đã có tình trạng này một thời gian trở lại và giải quyết nó chính xác như thế này ... –
@Hakan Deryal. Cảm ơn Đối với phản ứng của bạn, bạn có thể vui lòng cho tôi biết nếu tôi đã tạo một thư mục với tư cách là bên thứ ba trong nhà cung cấp và đặt tệp của bên thứ ba ở đó sao cho nhà cung cấp/thirdparty/myfile.php làm cách nào tôi có thể đưa nó vào gói Acme của tôi. – ScoRpion
Ứng dụng của bên thứ ba có sử dụng không gian tên không? Bạn có thể kiểm tra bằng cách tìm một dòng ở đầu tệp như 'không gian tên ....' –
- 1. Nơi tốt nhất để đặt các tệp DLL của bên thứ ba để tham chiếu
- 2. Cách tốt nhất để tích hợp thư viện của bên thứ ba trong Android studio
- 3. Cách tốt nhất để gỡ lỗi đá quý của bên thứ ba trong ruby
- 4. Tạo khung công tác iOS: bao gồm thư viện của bên thứ ba và mã số
- 5. Bao gồm các chức năng tùy chỉnh của người dùng Thực hành tốt nhất trong Symfony2
- 6. Cách tiếp cận tốt nhất để xây dựng NHibernate DTO's
- 7. Thực hành tốt nhất để tích hợp mô-đun của bên thứ ba vào ứng dụng của bạn
- 8. Cách tiếp cận tốt nhất để đăng nhập là gì?
- 9. Cách tiếp cận tốt nhất để mã hóa các tệp lớn bằng php
- 10. Cách tiếp cận tốt nhất để ràng buộc các sự kiện jQuery với các thành phần
- 11. Tạo biểu mẫu động (cách tiếp cận tốt nhất)
- 12. PHP - Thực tiễn tốt nhất để truyền các biến số để bao gồm các tệp
- 13. .NET Danh sách cách tiếp cận tốt nhất
- 14. Ruby on Rails: Cách tốt nhất để kiểm tra cuộc gọi không thành công tới API của bên thứ ba
- 15. Cách tiếp cận viết lại URL DotNetNuke tốt nhất?
- 16. Cách tiếp cận tốt nhất để hiển thị/ẩn cửa sổ một cách rõ ràng
- 17. Thư viện của bên thứ ba được bao gồm trong các mô-đun node.js gốc như thế nào?
- 18. Ruby, Qt và các vật dụng của bên thứ ba
- 19. Bảo mật tốt hơn của PHP bằng cách giữ các tệp bao gồm bên ngoài thư mục công cộng?
- 20. Gọi API Java từ .NET - cách tiếp cận tốt nhất
- 21. Thực tiễn tốt nhất với thử nghiệm Đơn vị trên API phần mềm của bên thứ ba (AutoCAD)
- 22. Cách tốt nhất để bao gồm Javascript là gì?
- 23. Tìm giấy phép của bên thứ ba với Nuget
- 24. PHP bao gồm các câu hỏi thực hành tốt nhất
- 25. Cách tiếp cận bảo mật tốt nhất để tích hợp Salesforce.com với máy chủ .NET C#
- 26. Cách tiếp cận tốt nhất cho máy khách WCF
- 27. I18N của Django với các ứng dụng của bên thứ ba
- 28. Cách liên kết các thư viện của bên thứ ba trong tác vụ javadoc của Ant
- 29. Làm cách nào để nhập lib của bên thứ ba vào git?
- 30. cách tốt nhất để bao gồm tệp js trong khung công tác zend
Đây là cách chính xác để thực hiện. Nếu một thư viện không tuân thủ bất kỳ quy ước đặt tên nào, tôi sẽ đề nghị bắt đầu sử dụng nhà soạn nhạc ([repo] (https://github.com/composer/composer), [symfony] (https://github.com/symfony/symfony) -Tiêu chuẩn)). Nó cho phép lập bản đồ của bất kỳ thư viện nào, làm cho tự động tải có thể cho ngay cả những libs không tuân theo quy ước. – gilden