2017-05-08 2 views
0

우리는 Composer를 통해 Symfony에 설치된 여러 공급 업체 번들 (외부 및 내부 작성)을 가지고 있습니다. 그래서 하나의 composer.json의 예는 다음과 같습니다Symfony에서 Composer가 설치 한 번들 버전을 얻으려면 어떻게해야합니까?

"repoName/ThisBundle" : "dev-release/1.1.2" 

그래서 심포니의 컨트롤러에서, 어떻게 "DEV-릴리스/1.1을 반환 또는"repoName/ThisBundle ""ThisBundle "의 버전을 요청할 수 .2 "?

번들 중 하나는 모든 앱에 템플릿을 제공하며, 앱 중 하나에서 사용중인 템플릿 버전을 표시하려고합니다.

+2

그냥 잠금 파일 – Federkun

+0

을 구문 분석 할 수 있습니다. 그게 제가 생각한 것입니다.하지만 버전 번호를 얻으려고 많은 노력이 필요합니다. Symfony는 프레임 워크이므로 프레임 워크를 통해 이러한 세부 정보에 액세스하는 것이 좋을 것입니다. – MicWit

답변

1

당신은

composer.phar show 

모든 현재 설치된 패키지와 버전 정보를 표시합니다 입력합니다. 은 자세한 내용을 볼뿐만 아니라 패키지의 이름을 지정하려면 다음 등 MD5 해시, 소스 URL, 라이센스 유형을, 커밋을 포함하여, 많은 것들을 보여줄 것이다
composer.phar show bundle/bundlename 

+0

아마도 컨트롤러 내부에서이를 수행하는 방법의 예를 사용하여 대답을 업데이트 할 수 있습니까? – Cerad

+0

예, 이것은 컨트롤러 (php를 통해)가 아닌 명령 행을 통해 수행하는 방법 인 것 같습니다. – MicWit

+0

$ this-> container-> getParameter ('kernel.bundles'); –

0

당신은 컨테이너 개체가있는 경우 가능한 다음

$this->container->getParameter('kernel.bundles'); 

에 의해 활성화 된 번들의 배열을 얻을 수 있지만, appkernal.php 행운에, 단지 활성화 번들을 기억할 수 (당신이 컨트롤러에 있다면 그것은의 경우)

+1

번들이 설치되어 있는지 확인할 수있는 것은 좋지만, 설치된 특정 번들의 버전이 설치되어있는 경우에만 얻을 수는 있습니다. 이 배열은 다차원 배열 인 경우에는 굉장 할 것입니다. 여기에는 설치된 버전이있는 경로 대신에 경로가 있습니다. – MicWit

+0

@MicWit 당신이 .htaacces 파일을 변경하여 composer.json 파일에 액세스 할 수 있도록 허용 한 다음 json_decode 함수를 사용하여 배열로 변환하면 완료되는 방법 (잘못된 방법)을 볼 수 있습니다. 하지만 여전히 웹 디렉토리가 공개적으로 열리는 유일한 장소 여야하기 때문에 일을하는 것은 나쁜 방법입니다. 행운을 빌어 요 –

+0

예치, 우리가 보안 팀에 의해 총격을받는 것처럼 그렇게하지 않을 것입니다! 이를 수행 할 수있는 방법이없는 것 같고 Symfony에 기능 요청을 추가 할 수 있습니다. – MicWit

관련 문제