CI 묻고 답하기

제목 커스텀 라이브러리를 로드하면 자동주석처리 관련 질문드립니다!
카테고리 CI 4 관련
글쓴이 CI4왕초보 작성시각 2021/08/19 16:41:13
댓글 : 17 추천 : 0 스크랩 : 0 조회수 : 9929   RSS

임의의 라이브러리 파일을 만든후 로드할때 라이브러리가 모두 자동으로 주석처리가 되는오류가 발생하여 질문드립니다.

라이브러리 파일은 app/Libraries/ 에 위치하고있고, 클래스 이름은 FileUp 입니다

app/Config/Autoload.php 의 $psr4 배열안에 'Libraries' => APPPATH . 'Libraries', 를 추가하고,

BaseController 에서 상단에 use app\Libraries\FileUp; 를 추가하고,

protected $fileUp; 선언을 하고

initController 안에 $this->fileUp = new FileUp(); 으로 객체를 생성했습니다.

하지만 페이지가 로드되면 라이브러리 파일이 일부분은 주석처리가 되고 <body onload="init()">에 나머지 소스가 출력됩니다..

소중한 가르침 부탁드립니다..

 다음글 class not found 문제 (3)
 이전글 ci4에서 라이브러리 load 오류 (3)

댓글

테러보이 / 2021/08/19 17:23:57 / 추천 0

오토로드에 추가 할필요 없이 자동으로 로드 됩니다.

주석이라는게 어떤걸 의미하는지 질문에서 파악 하기 힘듭니다.

스크린샷 등을 동봉 부탁드립니다.

변종원(웅파) / 2021/08/19 17:32:18 / 추천 0
화면에 소스가 출력된다는 이야기 같네요. php 구문 맞는지 검증해보세요.
CI4왕초보 / 2021/08/19 17:49:06 / 추천 0

변종원 님께서 말씀하신대로 라이브러리의 소스가 일부분은 주석이 된 상태로 로드가되고 나머지소스는 화면에 출력이 되고 

BaseController 의 

이부분에서

Class 'app\Libraries\FileUp' not found 오류메시지가 뜹니다..

 

변종원님 께서 말씀해주신 php 구문이 맞는지 검증하라는 말씀이 어떤부분에서 검증이 필요한건지 이해가 잘 안됩니다.. 

조금만 자세히 말씀부탁드립니다 ㅠㅠ

그림을 첨부하니 오류가 나서 오류발생화면 하단에 따로 첨부합니다..

CI4왕초보 / 2021/08/19 17:49:26 / 추천 0

에러화면에서 DevTools 의 Element 부분 입니다.

CI4왕초보 / 2021/08/19 17:50:22 / 추천 0

출력되는 페이지 입니다.​

CI4왕초보 / 2021/08/19 17:57:34 / 추천 0

추가로 또 하나 발견한게 있는데.. 뷰파일에서 제가 객체를 선언해서 쓰고있었는데

이 소스도 로드되면 <!--<? 소스 ?> --> 이런식으로 주석처리가 됩니다..

테러보이 / 2021/08/20 09:01:10 / 추천 0

$lib = new \App\Libraries\라이브러리클래스();

https://onlinewebtutorblog.com/codeigniter-4-custom-library-easy-steps/

변종원(웅파) / 2021/08/20 09:05:21 / 추천 0

해당 에러 난 페이지가 html인가요? php 인가요?

<!-- 이거는 html 주석입니다. 주석 충돌일 수도 있구요.

CI4왕초보 / 2021/08/20 09:05:40 / 추천 0

테러보이님 답변 감사드립니다..! 

링크해주신 블로그 내용도 참고한적이 있는데 같은 현상이 계속 발생합니다....

변종원님 답변 감사드립니다

에러난 페이지는 php 파일입니다! 주석충돌은 한번 확인해보겠습니다

CI4왕초보 / 2021/08/20 09:10:42 / 추천 0

하나 더 덧붙이자면...

기존에 윈도우에서 구동하였는데 이번에 리눅스서버로 옮기면서 발생한 오류입니다..!

윈도우에서 구동할때는 문제없이 구동되다가 서버를 리눅스로 옮기면서 발생하였습니다...

뒤늦게 말씀드린점 죄송합니다.

테러보이 / 2021/08/20 09:16:00 / 추천 0

@웅파

저건 일반 주석이라기 보단 문제의 파일에서 에러위치를 표기하기 위하여 표시 하는듯합니다.

 

@ci4왕초보

클래스의 각 단어 앞자리는 "대문자"가 되야합니다. (파일들도 규칙은 동일합니다.)

 

lib파일
./app/Libraries/StringLib.php

선언
$stringLib = new \App\Libraries\StringLib();

 

에디터 보시면 작성 코드에 밑줄이 생기는데 마우스를 올리면 힌팅됩니다.

CI4왕초보 / 2021/08/20 09:22:47 / 추천 0

@테러보이

선언부에서 앞자리를 대문자로 바꾸는것은 제가 실수 한부분 인거같습니다. 답변감사드립니다!

하지만 바꾼후에도 오류가 해결되지는 않았습니다!

지금 제가 생각하기에 제일 큰 문제는 BaseController 에서 라이브러리 객체를 생성하면 파일이 정상적으로 로드가 안되는거 같습니다.. 

테러보이 / 2021/08/20 09:28:27 / 추천 0

라이브러리 파일명 앞자리가 대문자가 아니던가

라이브러리의 네임스페이스 선언이 잘못됬다던가

클래스 이름이 잘못됬다던가

파일위치가 잘못됬다던가 로드가 안되는 이유는 여러가지입니다.

 

먼저 psr-4를 검색 해보세요

 

윈도우에서는 됬는데 동일한 소스가 리눅스에서 안되는건 대소문자 문제일 가능성이 100퍼센트 입니다.

CI4왕초보 / 2021/08/20 09:51:33 / 추천 0

BaseController 에서 이렇게 선언하고있고,

Libraries\FileUp.php 는

이런식으로 구성해보았습니다. 

하지만 Class 'app\Libraries\FileUp' not found 오류화면이 뜨고

DevTools 에서는

이런식으로 나옵니다... 

테러보이 / 2021/08/20 10:11:03 / 추천 0

1. namespace App\Libraries;

2. new \App\Libraries\FileUp();