Trong cấu hình định tuyến của ứng dụng trên Symfony2, tôi có thể đề cập đến một tập tin như thế này:Truy cập tập tin tương đối sẽ kèm theo trong Symfony2
somepage:
prefix: someprefix
resource: "@SomeBundle/Resources/config/config.yml"
Có cách nào để truy cập vào một tập tin tương ứng với các gói trong một bộ điều khiển hoặc khác Mã PHP? Đặc biệt, tôi đang cố gắng sử dụng một đối tượng Symfony \ Component \ Yaml \ Parser để phân tích một tệp và tôi không muốn tham chiếu đến tệp đó hoàn toàn. Về cơ bản, tôi muốn làm điều này:
$parser = new Parser();
$config = $parser->parse(file_get_contents("@SomeBundle/Resources/config/config.yml"));
Tôi đã kiểm tra ra Symfony \ Component \ Finder \ Finder lớp, nhưng tôi không nghĩ rằng đó là những gì tôi đang tìm kiếm. Bất kỳ ý tưởng? Hoặc có lẽ tôi hoàn toàn nhìn ra một cách tốt hơn để làm điều này?
Chính xác những gì tôi đang tìm kiếm! $ this-> get ('kernel') -> locateResource ("@ SomeBundle/Resources/config/config.yml"); // làm việc hoàn hảo –
@ tomtheman5: Hãy chắc chắn để nắm bắt ngoại lệ của nó. Phương thức này ném '\ InvalidArgumentException', nếu không thể tìm thấy tệp hoặc tên không hợp lệ và' \ RuntimeException', nếu tên có chứa các ký tự không hợp lệ/không an toàn. – gilden
Rất muốn cung cấp cho bạn nhiều hơn chỉ +1. – flu