티스토리 뷰
프로젝트별 node version 자동관리에 이어서 이번엔 php 해보려고 한다.
조건
- docker 사용자라면 필요가 없다.
- composer 사용자 ( shell script 에서 해당 프로젝트의 php 버전을 composer.json 에서 불러온다 )
- zsh 사용자 (shell script를 수정하면 가능할 것 같은데 이번글 zsh 기준으로 작성되어 있다.
- mac 사용자
준비단계
- brew 와 zsh 이 이미 설치되어 있다는 조건하에 시작하게습니다.
1. brew 에서 jq 를 설치합니다 나중에 만들어질 shell script 에서 해석용도로 사용됩니다.
# jq instsall
brew instsll jq
2. php mon의 환경 변수 등록 ( php mon의 환경변수가 없어도 작동 되는데 지장이 없기에 많은 분들이 생략하는 부분)
# phpmon 환경변수 추가 (자신의 상황에 맞게 수정한다 그러나 대부분 맞음)
export PATH=$HOME/.config/phpmon/bin:$PATH
3. shell script 작성
autoload -U add-zsh-hook
change-php-version() {
if [ -f composer.json ]; then
PHPVERSION=$(cat composer.json | jq '.require.php' | grep -o '[0-9].[0-9]')
NOWVERSION=$(php -v | grep -o '[0-9].[0-9]' | head -n 1)
if [ "$PHPVERSION" != $NOWVERSION ]; then
SWITCHVERSION=$(echo $PHPVERSION | sed -e "s/\.//g")
. pm$SWITCHVERSION
fi
fi
}
add-zsh-hook chpwd change-php-version
- 설명
- 프로젝트에 진입했을 때 composer.json 파일이 있는 경우 작동 된다.
- composer.json 파일에서 require 부분을 불러와 프로젝트의 php 버전을 확인하여 PHPVERSION 변수에 담음
- php -v 명령어를 통하여 현재 php 버전을 마이너 버전까지만 표시하여 NOWVERSION 변수에 담음
- 두 버전이 틀리면 아까 등록한 php mon의 환경변수에서 quick 변경 커맨드를 실행시킨다.
- 해당 method를 zsh hook 에 등록
4. 작성된 파일을 .zshrc에 등록
# 위에서 만든 파일이 ~/Utils/php/ 폴더에 auto-php.sh 일 경우
source ~/Utils/php/auto-php.sh
적용모습
'개발 > Laravel' 카테고리의 다른 글
laravel ORM paginate 주의사항 (0) | 2024.05.13 |
---|---|
laravel 소셜 로그인 프로바이더 모음 (0) | 2022.02.24 |
라라벨 스타일 가이드 (0) | 2018.09.10 |
블로그 개발하기 (0) | 2018.08.27 |
유효성 검사 실패시 Input Textarea 창 테두리 색상변경하기 (0) | 2018.08.27 |
댓글