질문 Q #19196
composer_autoload 질문드립니다.
고민중 2017-12-22 15:53:57

AWS SDK를 CI에 이용하는데

한가지 궁금한게 있어서요.

 

third_party 폴더에 aws/vendor/autoload.php가 있습니다.

그래서 설명대로 config/config.php 폴더에

이렇게 하고서는 컨트롤러에 아래와 같이 또 선언해서 사용하라고 게시판에 나와있는데

위에 require를 선언할거면 굳이 $config['composer_autoload'] = APPPATH.'third_party/aws/vendor/autoload.php'; 이걸 하는 이유가 먼가요??

$config['composer_autoload'] = FALSE;를 하고

사용하는 컨트로럴에서 

require APPPATH.'third_party/aws/vendor/autoload.php';

이렇게 하면 사용할 수 있는거를 확인했습니다.

 

원래는 $this->load 형태로 부를수 있는 명령어가 있을거 같은데 설명이 없어서 어떻게 하라는 건지 모르겠습니다.

 

결론 : config파일에 composer_autoload를 하나 안하나 어차피 컨트롤러에서 사용이 안됨, 컨트롤러에 require ~/vendor/autoload.php를 해줘야지 됨.

composer_autoload만 하고 CI 명령어로 불러오는 명령어가 먼지 궁금합니다.

답변 4
#1 변종원(웅파) 2017-12-22 16:16:39

config에 선언한 것 자체가 require_once 역할입니다.  system/core/CodeIgniter.php 165 line (ci 3.1.6 기준)

사용하는 것은 ci사용법이라는 것이 없습니다. new 객체 선언해서 사용하시면 됩니다.

ci버전은 3점대 버전이시죠?

#2 고민중 2017-12-22 16:23:51

버전 3.x  입니다.

http://codesamplez.com/development/composer-with-codeigniter

위 사이트 참고하여 했는데 대부분 유저들이 Easy/Dirty 방식으로 사용하더라구요..

$config['composer_autoload'] = APPPATH.'third_party/aws/vendor/autoload.php'; 

선언하면 컨트롤러에서 바로사용되는게 맞네요. 아까전에는 에러났는데 왜 지금은 될까요??

그런데 위 사이트 처럼 필요시만 로드하는형태가 좋은것 아닌지 궁금합니다.

추가로 composer_autoload가 두개 이상일때는 어떻게 하나요? (TURE 하고서 별도로 선언하는건가요??)

#3 한대승(불의회상) 2017-12-22 17:00:29
require_once 를 사용하세요.
#4 변종원(웅파) 2017-12-22 17:06:25

2군데 위치면 한개는 config 한개는 사용하는 컨트롤러에서 로딩하시면 됩니다.