심포니 3 개 best practices 프로젝트에 따르면,이 같아야Symfony 프로젝트 구조 - 왜 src/및 app /?
app/config/
매장 어떤 환경에 대해 정의 된 모든 구성;app/Resources/
은 응용 프로그램의 모든 템플릿과 번역 파일을 저장합니다.src/AppBundle/
은 Symfony 고유 코드 (컨트롤러 및 경로), 도메인 코드 (예 : Doctrine 클래스) 및 모든 비즈니스 로직을 저장합니다.var/
...tests/AppBundle/
은 응용 프로그램의 자동 테스트 (예 : 단위 테스트)를 저장합니다.vendor/
이것은 Composer가 응용 프로그램의 종속성을 설치하는 디렉토리이며 절대 내용을 수정하면 안됩니다.- 는
web/
은 모든 전면 컨트롤러 파일과 스타일 시트, JavaScript 파일 및 이미지와 같은 모든 웹 자산을 저장합니다.
bin
, var
, vendor
및 web
디렉토리의 목적은 분명하다,하지만 난 왜 app
, src
및 tests
을 분리, 궁금하네요.
제가 알고 있듯이 src
에는 응용 프로그램을 만드는 번들이 포함되어 있습니다. 따라서 나는 그들이 app
디렉토리에있을 것으로 기대합니다. 또한 디렉토리는 src/AppBundle/Tests
번들에 포함되어야하므로 완전히 신비가 있습니다. 다른면에서 템플릿 (app/Resource/
)이 AppBundle 외부에있는 이유는 무엇입니까?
응용 프로그램간에 번들 공유에 대한 메모가 있지만 Composer가 있으므로 번들은 vendor
디렉토리에 있으며 별도의 저장소가 있습니다. 그러나 추가 인프라를 필요로하지 않고 애플리케이션에 여러 번들을 포함하는 것이 유용 할 수 있다는 것을 알고 있지만 src
은 완전히 잘못된 이름입니다.
그래서이 디렉토리 구조의 동기는 무엇입니까? 아니면 단지 역사적인 유산일까요?
좋은 이유가 없다면 tests/AppBundle
과 app/Resources
과 같은 중복 디렉토리를 제거 할 것입니다. AppBundle
에도 있습니다.
몇 가지 흥미로운 읽기 : http://stackoverflow.com/questions/23993295/what-is-the-new-symfony-3-directory-structure http://stackoverflow.com/questions/7625960/understanding-architecture symfony2의 폴더 구조 - http://symfony.com/doc/current/quick_tour/the_architecture.html. 내가 이해하는 한,'app'는 설정을위한 것이고,'tests'는 phpunit이 설정 파일의 경로를 명시 적으로 지정할 필요없이 프로젝트 루트에서 실행되도록합니다. – Veve
phpunit을 실행하려면 임의의 도구의 기본 구성 (테스트를 실행하기 위해 다른/다른 것을 사용하면 어떨까요?) 대신에'bin/command tests : run'과 같은 통일 된 진입 점이 필요합니다. –
귀하의 질문에 어떻게 대답 할 수 있을지 모르겠다 ... 어쨌든 디렉토리 아키텍처에 대한 흥미로운 두 개의 글 : https://github.com/symfony/symfony/issues/12991 & https://github.com/ symfony/symfony-standard/issues/584 : config 및 템플릿 용'app', PHP 소스 코드 용'src'. – Veve