Tôi mới sử dụng Symfony2 và tôi đã gặp phải một số vấn đề đơn giản nhưng tôi không chắc chắn cách quản lý nó. Tôi cần phải sử dụng một lớp bên thứ ba đơn giản và tôi không chắc chắn nơi và làm thế nào để lưu trữ nó trong cấu trúc dự án. Tôi có nên lưu trữ là một Dịch vụ trong Gói của tôi hay có lẽ tôi nên lưu trữ nó trong thư mục của nhà cung cấp? Và nếu tôi sẽ lưu trữ nó trong các nhà cung cấp không phải là một thực tế xấu để lưu trữ có libs mà không phải là Symfony hỗ trợ các nhà cung cấp?Nơi lưu trữ lớp bên thứ 3 đơn giản trong Symfony2?
Trả lời
Thông thường bạn bao gồm những người trong dự án của mình với Composer. Tôi đề nghị bạn hãy xem packagist để xem nếu có một gói Composer cho lớp của bạn, nếu không bạn không thể yêu cầu nó với nhà soạn nhạc.
Composer đặt các lớp học của bạn trong thư mục vendor
, bạn nên đặt tất cả 'nhà cung cấp' (thư viện bên thứ 3) tại đó. Hãy xem nơi đặt chúng trong thư mục đó, để trình nạp tự động Composer có thể tự động tải nó.
Sau đó, bạn nên tạo nhóm cho lớp cụ thể đó. Cách tốt nhất là tạo một dịch vụ ở đó. Ví dụ, nếu lớp học của bạn là Foo
bạn tạo một Acme\FooBundle
mà tải các Foo
dịch vụ:
// src/Acme/FooBundle/DependencyInjection/AcmeFooExtension.php
<?php
namespace Acme\FooBundle\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
class AcmeFooExtension extends Extension
{
/**
* this method loads the Service Container services.
*/
public function load(array $configs, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
// load the src/Acme/FooBundle/Resources/config/services.xml file
$loader->load('services.xml');
}
<!-- src/Acme/FooBundle/Resources/config/services.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<!-- Loads the \Foo class as a acme_foo.foo service -->
<service id="acme_foo.foo"
class="\Foo"
></service>
</services>
</container>
Bản thân Symfony lưu trữ thư viện của bên thứ ba tại thư mục nhà cung cấp. Có phải là good practice để đặt lớp bên thứ 3 của bạn ở đó quá
Nếu bạn không biết cách thực hiện, có thể this question sẽ giúp ích.
Tôi tin rằng việc sử dụng vùng chứa dịch vụ sẽ là một phương pháp hay. Dù sao, dịch vụ container được tạo ra để lưu trữ depindencies bên thứ ba và tiết kiệm khớp nối lỏng lẻo.
Nhìn số docs, có cách viết và cách sử dụng vùng chứa dịch vụ.
Chúc may mắn.
- 1. Xác thực Symfony2 qua API REST bên thứ 3
- 2. Nơi lưu trữ cấu hình cho một ứng dụng .NET đơn giản?
- 3. Lưu trữ cài đặt người dùng đơn giản trong Python
- 4. Lưu trữ xml bên trong xml
- 5. Nơi lưu trữ trong bộ nhớ được lưu trữ vtable?
- 6. Vấn đề lưu trữ riêng biệt đơn giản
- 7. Lưu trữ thứ nguyên trong tệp xml trong Android
- 8. Lớp lưu trữ trong DDD
- 9. Symfony2 - Truy cập chức năng kho lưu trữ trong Entity
- 10. Lưu trữ dữ liệu Const thứ bậc
- 11. Nơi đặt logic nghiệp vụ trong Symfony2?
- 12. Lớp "trong" D Lưu trữ
- 13. Nơi nào nginx lưu trữ rewrite_log?
- 14. đơn giản jquery truy cập thứ hai
- 15. Vấn đề lưu trữ dữ liệu iOS5. Nơi lưu tệp?
- 16. Lưu trữ một bảng đơn giản trong bộ nhớ trong ASP.NET?
- 17. iPhone: Nơi NSUserDefaults được lưu trữ?
- 18. Lưu trữ thông tin giờ/phút đơn giản trong Java - câu hỏi thực hành tốt nhất
- 19. Cấu hình bộ phận MEF, nơi lưu trữ?
- 20. Symfony2: Cách đơn giản nhất để có được url RESTful
- 21. Giá lưu trữ S3 (Hệ thống lưu trữ đơn giản của Amazon) được tính như thế nào?
- 22. Có lớp đệm bộ đệm Python chuẩn thứ 3 không?
- 23. Nơi lưu trữ các lớp ngoại lệ tùy chỉnh trong dự án Grails?
- 24. Sử dụng đúng chức năng SCOPE_IDENTITY trong quy trình lưu trữ đơn giản
- 25. Lưu trữ bảng Azure - Ví dụ đơn giản nhất có thể
- 26. Backbone.js - nơi lưu trữ thông tin trạng thái?
- 27. Nơi bí danh 'được lưu trữ trong Ubuntu 10.04
- 28. Nơi đặt thư mục lưu trữ SVN trong Linux?
- 29. Nơi tìm thủ tục lưu trữ msdb.dbo.sp_send_dbmail trong SQL Server
- 30. nơi lưu trữ các chức năng trợ giúp?