새로운 Symfony 3 디렉토리 구조를 사용하고 싶지만 질문이 보이지 않습니까?
Would you like to use Symfony 3 directory structure?
새로운 프로젝트를 생성 할 때 혼란으로 인해 문제 가 제거되었습니다. 다음을 사용하여 디렉토리 구조를 강제로 사용할 수 있습니다.
새 구조를 선호하는 경우 환경 변수 SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE
를 다음 .bashrc
과 .bash_profile
같이 추가 할 수 있습니다 .
미래의 모든 프로젝트가 새로운 구조를 요구하도록합니다.
# .bash_profile
# ALL new composer installs will ask `Would you like to use the new Symfony3 strucure?`
export SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true
이 프로젝트 만 새 구조를 사용할 것인지 묻도록하십시오.
특정 프로젝트에만 사용하려면 (일회성) 다음을 사용할 수 있습니다.
SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true composer create-project symfony/framework-standard-edition path/ "2.5.*"
환경 변수가있는 경우 SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE
설정으로 설정 true
, composer
새 디렉토리 구조를 사용하려는 경우 요청합니다.
Symfony2
및 Symfony3
디렉토리 구조 사이의 모든 변경 사항에 대해서는 아래를 계속 읽으십시오 .
새로운 Symfony 3 디렉토리 구조는 무엇입니까?
(그리고 그것이 나와 내 워크 플로우에 어떤 영향을 미칩니 까)
나는 2 개의 프로젝트를 만들어서 조사했다. 하나는 symfony-2.5.0
디렉토리 구조이고 하나는 symfony-3
(디렉토리 구조 변경 만)이다.
각 프로젝트 중 하나를 만듭니다.
# say `N` to `Would you like to use Symfony 3 directory structure?`
$ composer create-project symfony/framework-standard-edition symfony-2.5.0/ 2.5.0
# say `Y` to `Would you like to use Symfony 3 directory structure?`
$ composer create-project symfony/framework-standard-edition symfony-3/ 2.5.0
이제 비교할 두 개의 다른 디렉토리가 있습니다.
diff
erence 찾기
다음을 diff
사용하여 두 디렉토리 사이를 이동할 수 있습니다 .
$ diff -rq symfony-2.5.0/ symfony-3/
/** (Returned from the diff)
Files symfony-2.5.0/.gitignore and symfony-3/.gitignore differ
Files symfony-2.5.0/.travis.yml and symfony-3/.travis.yml differ
Only in symfony-2.5.0/app: bootstrap.php.cache
Only in symfony-2.5.0/app: cache
Only in symfony-2.5.0/app: console
Only in symfony-2.5.0/app: logs
Only in symfony-2.5.0/app: phpunit.xml.dist
Only in symfony-3/bin: console
Only in symfony-3/bin: symfony_requirements
Files symfony-2.5.0/composer.json and symfony-3/composer.json differ
Only in symfony-3/: phpunit.xml.dist
Only in symfony-3/: var
Files symfony-2.5.0/vendor/autoload.php and symfony-3/vendor/autoload.php differ
Files symfony-2.5.0/vendor/composer/autoload_real.php and symfony-3/vendor/composer/autoload_real.php differ
Files symfony-2.5.0/web/app.php and symfony-3/web/app.php differ
Files symfony-2.5.0/web/app_dev.php and symfony-3/web/app_dev.php differ
*/
이것은 두 버전에서 다른 파일을 보여줍니다.
고장 diff
다음은 diff의 모든 내용입니다.
# These files still exist in both versions (with different content)
.gitignore
.travis.yml
composer.json
vendor/autoload.php
vendor/composer/autoload_real.php
web/app.php
web/app_dev.php
# The following files have been removed from 2.5.0
# {RemovedFile2.5} | {ReplacedWith3.0}
app/cache | var/cache
app/logs | var/log
app/bootstrap.php.cache | var/bootstrap.php.cache
app/console | bin/console
app/phpunit.xml.dist | phpunit.xml.dist
# The following files are new in 3.0
bin/symfony_requirements # run via CLI
Symfony 3 디렉토리 구조의 이점
새 디렉터리 구조에는 여러 가지 이점이 있으며, 모두 사소하고 워크 플로를 최소한으로 변경해야 할 수도 있습니다.
PHPUnit
phpunit
구성 파일의 경로를 명시 적으로 지정하지 않고도 프로젝트 루트에서 실행할 수 있습니다.
# Symfony2
phpunit -c app/phpunit.xml
# Symfony3 (no need to specify the configuration file location)
phpunit
바이너리 실행 파일
모든 바이너리 실행 파일은 이제 모두 단일 위치 (유닉스 계열 os와 유사) 인bin
디렉토리에 있습니다.
# you can update your `PATH` to include the `bin` directory
PATH="./bin:$PATH"
# From your project root you can now run executables like so:
console
symfony_requirements
doctrine
# else with no `PATH` update
bin/console
bin/symfony_requirements
bin/doctrine
새 /var
디렉토리
새 /var
디렉토리에는 시스템이 작동하는 동안 데이터를 기록하는 파일이 포함됩니다 (유닉스 계열 OS와 유사) .
이렇게하면 권한을 더 쉽게 추가 /var
할 수 있으며 웹 서버 에서 전체 디렉토리를 쓸 수 있어야합니다. 권한 설정에 대한 Symfony2 가이드를 따를 수 있으며 ( app/cache
&&를 app/logs
으로 대체 var
) 로컬로 작성하려는 다른 파일도 여기에있을 수 있습니다.
# default symfony3 `var` directory
var/bootstrap.php.cache
var/cache
var/logs
Symfony 요구 사항 확인
실행 symfony_requirements
하면 필수 및 선택적 환경 구성이 출력됩니다.
예 :
********************************
* 'Symfony requirements check' *
********************************
* Configuration file used by PHP: /usr/local/php5/lib/php.ini
/** ATTENTION **
* The PHP CLI can use a different php.ini file
* than the one used with your web server.
* To be on the safe side, please also launch the requirements check
* from your web server using the web/config.php script.
*/
** Mandatory requirements **
'
OK PHP version must be at least 5.3.3 (5.5.11 installed)
OK PHP version must not be 5.3.16 as Symfony wont work properly with it
OK Vendor libraries must be installed
OK var/cache/ directory must be writable
OK var/logs/ directory must be writable
OK date.timezone setting must be set
OK Configured default timezone "Europe/London" must be supported by your installation of PHP
OK json_encode() must be available
OK session_start() must be available
OK ctype_alpha() must be available
OK token_get_all() must be available
OK simplexml_import_dom() must be available
OK APC version must be at least 3.1.13 when using PHP 5.4
OK detect_unicode must be disabled in php.ini
OK xdebug.show_exception_trace must be disabled in php.ini
OK xdebug.scream must be disabled in php.ini
OK PCRE extension must be available
'
** Optional recommendations **
'
OK xdebug.max_nesting_level should be above 100 in php.ini
OK Requirements file should be up-to-date
OK You should use at least PHP 5.3.4 due to PHP bug #52083 in earlier versions
OK When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156
OK You should not use PHP 5.4.0 due to the PHP bug #61453
OK When using the logout handler from the Symfony Security Component, you should have at least PHP 5.4.11 due to PHP bug #63379 (as a workaround, you can also set invalidate_session to false in the security logout handler configuration)
OK You should use PHP 5.3.18+ or PHP 5.4.8+ to always get nice error messages for fatal errors in the development environment due to PHP bug #61767/#60909
OK PCRE extension should be at least version 8.0 (8.34 installed)
OK PHP-XML module should be installed
OK mb_strlen() should be available
OK iconv() should be available
OK utf8_decode() should be available
OK posix_isatty() should be available
OK intl extension should be available
OK intl extension should be correctly configured
OK intl ICU version should be at least 4+
OK a PHP accelerator should be installed
OK short_open_tag should be disabled in php.ini
OK magic_quotes_gpc should be disabled in php.ini
OK register_globals should be disabled in php.ini
OK session.auto_start should be disabled in php.ini
OK PDO should be installed
OK PDO should have some drivers installed (currently available: mysql, sqlite, dblib, pgsql)
'
결론
Sensio Labs에서 정리 한 것 같습니다. 위의 모든 변경 사항은 완벽하게 이해되며에서 2.5
로 업그레이드 할 때 쉽게 구현할 수 있어야합니다 3.x
. 이러한 변경은 아마도 가장 문제가 될 것입니다!
문서 읽기
Symfony 2.x => 3.0 여기에서 문서 업그레이드
Symfony 3.0 아키텍처
Symfony 3 출시일
릴리스 프로세스 (읽을 가치가 있음)를 보면 멀어 보입니다 .
http://symfony.com/doc/current/contributing/community/releases.html
(출처 : symfony.com )