취업/PHP

[php] CI 코드이그나이터3에 env dotenv .env 적용하기

카슈밀 2021. 11. 12. 13:27
반응형

위코드를 다닐때는 초보자라 config.js에서 그냥 export 해서 사용했던거였는데,

node.js를 배우면서 dotenv라는 라이브러리를 알게되었다.

해당 라이브러리는 config.js처럼 하나의 전역변수 파일을 만들어 따로 호출하지 않고,

config.js는 해당 파일을 사용하는 컴포넌트에서 매번 import해야했음.

하지만, dotenv는 자동으로 해당파일을 import해서 변수 호출하는 방식으로 해결하는 라이브러리.

 

해당 파일만 github 예외파일로 선정시 나머지 코드들은 github에 업로드가 가능하니 공유도 좋다.

즉 보안성도 좋고 사용하기도 좋아서 재사용코드들도 관리가 쉽다는 것.

url * 500개면 500개를 일일히 수정하는 것인데, 이를 한개의 코드만 바꾸면 나머진 알아서 교체되니까.

매우 좋다.

 

잡소리는 그만하고, 본론으로 진행하자.

코드이그나이터4는 그냥 내장 모듈로 깔려있으니 그냥 써라.

코드이그나이터3에 적용되는 코드.

https://github.com/agungjk/phpdotenv-for-codeigniter

 

GitHub - agungjk/phpdotenv-for-codeigniter: Loads environment variables from `.env` to `getenv()` automagically.

Loads environment variables from `.env` to `getenv()` automagically. - GitHub - agungjk/phpdotenv-for-codeigniter: Loads environment variables from `.env` to `getenv()` automagically.

github.com

해당 github에서 system 폴더를 다운로드하자.

 

1. system폴더에 있는 dotenv 폴더를 코드이그나이터 프로젝트 system에 옮겨주자.

2. 프로젝트 내 최상단에 있는 index.php에 아래의 코드를 추가하자.

	/*
	 * --------------------------------------------------------------------
	 * LOAD PHP DOT ENV FILE
	 * --------------------------------------------------------------------
	 *
	 * And away we go...
	 *
	 */
	require_once BASEPATH . 'dotenv/autoloader.php';
	
	$dotenv = new Dotenv\Dotenv(__DIR__);
	$dotenv->load();

3. index.php가 있는 최상단에 ".env.development" 파일을 생성.

해당 파일에 

url1 = 'naver.com1'

url2 = 'naver.com2'

입력.

 

서버 파일질라를 쓴다면 이렇게 하고 파일을 업데이트하면 적용끝.

로컬이면 그냥 적용된 것.

사용방법은 

	'hostname' => getenv('DB_HOSTNAME'),
	'username' => getenv('DB_USERNAME'),
	'password' => getenv('DB_PASSWORD'),
	'database' => getenv('DB_DATABASE'),
	'dbdriver' => getenv('DB_DRIVER'),

getenv("name") 하면 그냥 .env.development에서 불려와진다.

 

해당 파일은 php에서만 호출이된다. js는 호출되지 않으니 컨트롤러에서 값을 넘겨주던가 해서 값을 호출하면 된다.

728x90