개발 Q&A

제목 Composer + CodeIgniter 구조가 이게 맞는지 궁금합니다
카테고리 PHP
글쓴이 아리아리 작성시각 2019/09/24 13:52:36
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 13103   RSS

 

 

 

문제>

컴포저로 plivo 라는 SDK 를 설치하여 프로젝트에서 사용하고싶습니다.

코드이그나이터라는 환경때문에 "use" 등의 명령어를 사용하지 못하는 점이 이상하고,

처음 컴포저를 사용하는거라 미숙합니다.


require 'vendor/autoload.php';
use Plivo\RestClient;

이부분을 적용해야합니다.

 

 

현재 진행상황 >

기존 프로젝트에 composer init,  composer install 하여 composer.json 이 생성된 상황. 

 

폴더 구조입니다>

1. composer 설치경로 : /root/vendor

2. 프로젝트 구조 : /home/www/project/    ( composer.json에 plivo 기술되어있음 )

3. 프로젝트 폴더의 project/application/config/autoload.php 에서 $autoload['packages'] = array('root/vendor/autoload.php')' 

명시됨  ( 필요없을것 같긴 합니다)

 

컨트롤러에서>

require_once 'Plivo/RestClient';    를 했지만

 

에러>

require_once(Plivo/RestClient): failed to open stream: No such file or directory</p>

이런 에러가 뜹니다.

 

혹시 어떤점이 빠진걸까요?

 

 

 다음글 안녕하세요 실습 중 에러가 나서 질문드립니다. (1)
 이전글 euc--kr에서 utf-8로 변환시 변환이 안되서 일... (8)

댓글

변종원(웅파) / 2019/09/24 14:01:24 / 추천 0

config.php 에 composer의 autoload.php 파일을 명시해줘야 합니다.

$config['composer_autoload'] = 'vendor/autoload.php';
아리아리 / 2019/09/24 14:15:21 / 추천 0

그 부분도 명시했습니다. 

혹시 httpd restart 가 필요한걸까요?

한대승(불의회상) / 2019/09/24 14:25:12 / 추천 0

httpd restart 필요 없습니다. 경로 명시하실때 절대경로로 명시하세요.

$config['composer_autoload'] = '/root/vendor/autoload.php'; // Example

 

아리아리 / 2019/09/24 14:41:08 / 추천 0

혹시 컨트롤러에서는 어떻게 지정해야할까요? 어떻게 해도 클래스를 못가져오네요. 

use Plivo\RestClient;

이부분을 어떻게 지정해야할까요?

class 위쪽 부분에 저렇게 지정 하고 

class 안에서 new RestClient 를 했지만 못찾고 에러가 납니다.

아리아리 / 2019/09/24 14:57:04 / 추천 0
혹시 composer.json의 require 부분에 사용하고자 하는 패키지를 명시 해줘야하는걸까요?
kaido / 2019/09/24 20:31:04 / 추천 0

이상하다 싶으시면 컨트롤러에 강제로 불러와보세요

require FCPATH.'vendor/autoload.php';
$config['composer_autoload'] = '/vendor/autoload.php';

사실상 동일한 의미 이긴 합니다.

FCPATH 는 CI 기본 상수로 CI 기준으로 root를 잡아줍니다. 

 

https://cikorea.net/bbs/view/lecture?idx=7138&page=2&view_category=&lists_style=

aws sdk composer 사용법입니다만, 사용법은 동일하니 참고해 보세요.