PHP에서 dotenv(), getenv(), putenv() 사용해보기

밤새·2024년 1월 7일
1

Back/Front

목록 보기
5/12

1. dotenv()

1-2) 장점

  1. .env 파일 형식을 지원하여 설정을 파일로 분리하여 관리하기 용이합니다.
  2. 여러 설정을 그룹화하고 주석을 추가하여 코드의 가독성을 향상시킬 수 있습니다.
  3. .env 파일을 수정하여 환경 변수를 변경하면 코드를 수정할 필요가 없습니다.
  4. 환경 변수에 대한 보안을 강화할 수 있습니다.

1-3) 단점

  1. 추가적인 라이브러리를 사용해야 하므로 프로젝트의 의존성이 늘어납니다.
  2. 환경 변수의 변경이나 추가가 있을 때 .env 파일을 수정해야 하므로, 프로젝트 관리에 조금 더 신경을 써야 합니다.

이제 dotenv를 사용하여 데이터베이스 연결 정보를 제공해보도록 하겠습니다!

1-4) 사용예시

  1. 먼저, dotenv 라이브러리를 설치합니다. Composer를 사용하여 설치할 수 있습니다.
composer require vlucas/phpdotenv
  1. 프로젝트 루트 디렉토리에 .env 파일을 생성하고 다음과 같이 연결 정보를 설정합니다.
DB_HOST=localhost
DB_USERNAME=root
DB_PASSWORD=1234
DB_NAME=test
DB_PORT=3306
  1. PHP 파일에서 dotenv를 사용하여 환경 변수를 로드하고 연결 정보를 가져옵니다.
<?php
	require_once __DIR__ . '/vendor/autoload.php'; // Composer autoload
	
	$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
	$dotenv->load();
	
	$servername = $_ENV['DB_HOST'];
	$name = $_ENV['DB_USERNAME'];
	$password = $_ENV['DB_PASSWORD'];
	$dbname = $_ENV['DB_NAME'];
	$port = $_ENV['DB_PORT'];
	
	$conn = new mysqli($servername, $name, $password, $dbname, $port);
	
	if ($conn->connect_error) {
	    die("데이터베이스 연결 실패: " . $conn->connect_error);
	}
?>

이제 .env 파일에 설정된 값들이 환경 변수로 설정되어 PHP 코드에서 사용할 수 있습니다.

2. getenv(), putenv()

2-1) 장점

  1. PHP에 내장되어 있어 추가적인 라이브러리나 의존성이 필요하지 않습니다.
  2. 간단한 환경 변수를 다룰 때에는 getenv()putenv()만으로 충분합니다.

2-2) 단점

  1. 복잡한 설정이나 다수의 변수를 다룰 때에는 코드가 복잡해질 수 있습니다.
  2. .env 파일 형식을 직접 지원하지 않아서, 따로 처리해주어야 합니다.
  3. 가독성과 유지보수성이 낮을 수 있습니다.

getenv()

  1. .env 파일
DB_HOST=localhost
DB_USERNAME=root
DB_PASSWORD=1234
DB_NAME=test
DB_PORT=3306
  1. PHP 파일
<?php
	$servername = getenv('DB_HOST');
	$name = getenv('DB_USERNAME');
	$password = getenv('DB_PASSWORD');
	$dbname = getenv('DB_NAME');
	$port = getenv('DB_PORT');
	
	$conn = new mysqli($servername, $name, $password, $dbname, $port);
	
	if ($conn->connect_error) {
	    die("데이터베이스 연결 실패: " . $conn->connect_error);
	}
?>

이렇게 하면 .env 파일에서 설정한 변수들이 getenv() 함수를 통해 PHP 코드에서 사용됩니다!

putenv()

putenv() 함수는 PHP에서 환경 변수를 설정하는 데 사용되는 함수입니다. 이 함수를 사용하면 코드에서 직접적으로 환경 변수를 설정할 수 있습니다. putenv() 함수를 사용하면 getenv() 함수를 통해 설정한 환경 변수를 읽어올 수 있습니다.

putenv() 함수의 기본 구문은 아래와 같습니다!

putenv("변수명=값");

여기서 "변수명"은 환경 변수의 이름이고, "값"은 그에 대응하는 값입니다.

putenv("DB_HOST=localhost");
putenv("DB_USERNAME=root");
putenv("DB_PASSWORD=1234");
putenv("DB_NAME=test");
putenv("DB_PORT=3306");

이후에는 getenv() 함수를 사용하여 이러한 환경 변수를 읽어올 수 있습니다.

$servername = getenv('DB_HOST');
$name = getenv('DB_USERNAME');
$password = getenv('DB_PASSWORD');
$dbname = getenv('DB_NAME');
$port = getenv('DB_PORT');
profile
프로젝트를 통해 배운 개념이나 겪은 문제점들을 정리하고, 회고록을 작성하며 성장해나가는 곳입니다 😊

0개의 댓글

관련 채용 정보