개발 환경과 서비스 환경 쉽게 바꾸기
Submitted by river -
등록 9 years ago - 수정 9 years ago
Laravel 5
에서 환경 설정 방법이 변경되서 개발 환경과 서비스 환경을 관리하기가 전 버전보다 귀찮은 것 같다. 그래서, 환경 설정 파일을 변경하는 스크립트를 만들어서 사용하면 좀 편하지 않을까 해서, PHP로 envswitch
란 걸 만들었다.
이를 사용하기 위해서는 다음 형태의 폴더 구조를 가져야 한다.
폴더 구조 예
├── config
│ └── queue.php
├── config_env
│ ├── queue.local.env
│ └── queue.production.env
├── .env
├── .env.local
└── .env.production
사용예
./envswitch local
./envswitch production
envswitch local
을 실행하면 위의 폴더에서 .env.local
이 .env
로, queue.local.env
가 queue.php
로 복사된다.
설치
아래 소스를 복사해서 Laravel 루트 폴더에 envswitch 란 이름으로 파일을 만든 다음 실행권한을 주면 된다.
chmod +x envswitch
envswitch 소스
#!/usr/bin/env php
<?php
if (count($argv) !== 2) {
echo "Missing required parameter envname\n";
echo "File should exist in current directory as .env.envname\n";
echo "Usage:\n";
echo " envswitch envname\n";
exit(1);
}
$env = $argv[1];
$envFile = ".env.$env";
if (! file_exists($envFile)) {
echo "$envFile does not exist.\n";
exit(1);
}
copyFile($envFile, ".env");
// config_env
foreach (glob("config_env/*.$env.php") as $filename) {
$srcFile = $filename;
$pathParts = pathinfo($srcFile);
$dstFile = $pathParts["basename"];
$dstFile = "config/" . str_replace(".$env.", ".", $dstFile);
copyFile($srcFile, $dstFile);
}
echo "Completed.\n";
function copyFile($src, $dst)
{
if (copy($src, $dst)) {
echo "Copied $src to $dst\n";
} else {
echo "Error occurred while copying $src to $dst\n";
exit(1);
}
}
Stats
-
0 likes
- 5673 views