일단 기본적으로는 이 페이지를 참고하면 된다.
▶Autocomplete Eclipse Codeigniter 2
주욱 보면서 이해하고 싶은 사람은 동영상을 봐도 된다. HD 화면으로 봐야 잘 보인다. 내 글 맨 아래 첨부해 놓기도 했으니 이 화면에서 바로 볼 수도 있다.
자동완성 기능용 프로젝트를 하나 만든다
이 팁은 자동완성만을 위해 프로젝트를 하나 만드는 방식의 팁이다. 이클립스가 함수를 참조할 수만 있게 한다. (만약 이 팁을 실제 사용하는 프로그램에 넣게 되면 웹사이트가 작동을 안 하게 될 거다.)
일단 CI_CodeBase 따위로 이름을 짓고 프로젝트를 하나 만든다. 그리고 거기 코드이그니터 소스코드를 다 집어 넣는다.
이렇게 넣으면 된다. 위에서 .settings 는 이클립스가 만든 거니 신경쓰지 마시고. (평소엔 감춰져 있는데 난 보이게 설정했을 뿐이다.)
이제 아래 코드를 CI_CodeBase 프로젝트의 system/core/Controller.php
와 system/core/Model.php
의 class 안에 넣는다. (함수 안이나 이런 데 넣지 말고 그냥 클래스 안에 넣으면 된다.)
//Put the codes below in system/core/Controller.php, Model.php // for Eclipse auto completion /** * @var CI_Benchmark */ var $benchmark; /** * @var CI_Calendar */ var $calendar; /** * @var CI_Cart */ var $cart; /** * @var CI_Config */ var $config; /** * @var CI_DB_active_record */ var $db; /** * @var CI_Email */ var $email; /** * @var CI_Encrypt */ var $encrypt; /** * @var CI_Form_validation */ var $form_validation; /** * @var CI_Ftp */ var $ftp; /** * @var CI_Image_lib */ var $image_lib; /** * @var CI_Input */ var $input; /** * @var CI_Javascript */ var $javascript; /** * @var CI_Lang */ var $lang; /** * @var CI_Loader */ var $load; /** * @var CI_Log */ var $log; /** * @var CI_Output */ var $output; /** * @var CI_Pagination */ var $pagination; /** * @var CI_Parser */ var $parser; /** * @var CI_Security */ var $security; /** * @var CI_Session */ var $session; /** * @var CI_Sha1 */ var $sha1; /** * @var CI_Table */ var $table; /** * @var CI_Trackback */ var $trackback; /** * @var CI_Typography */ var $typography; /** * @var CI_URI */ var $uri; /** * @var CI_Unit_test */ var $unit; /** * @var CI_Upload */ var $upload; /** * @var CI_User_agent */ var $agent; /** * @var CI_Utf8 */ var $utf8; /** * @var CI_Xmlrpc */ var $xmlrpc; /** * @var CI_Xmlrpcs */ var $xmlrpcs; /** * @var CI_Zip */ var $zip;
이제 실제 프로젝트로 간다. 실제 프로젝트에서 마우스 우클릭을 하고 Include Path > Configure Include Path… 를 누른다. (아래 그림 참고)
나오는 창에서 Projects 탭을 고른 후, Add 버튼을 누른다. 여기서 CI_CodeBase 프로젝트를 선택해 준 후 OK 버튼을 누른다. (아래 그림 참고)
그러면 이제부터 자동완성 기능이 작동하기 시작한다.
원리를 추측해 봤다
원리를 추측해 봤다. 아마도 이클립스가 이해할 수 있는 방식으로 주석을 달아 클래스와 변수를 연결해 주는 방식이지 싶다.
코드이그니터의 모든 컨트롤러와 모델은 모두 CI_Controller, CI_Model을 상속받으므로, 이 안에 변수를 넣어 두면 인식을 하는 걸로 이해할 수 있겠다.
부모의 변수 → 변수가 가리키는 클래스(주석 참조) → 해당 클래스에서 함수 검색
이런 과정을 거치는 듯하다.
내가 만든 클래스의 함수 자동완성 기능 사용하기
그러나 위 설명대로 하면 내가 만든 클래스들까지 자동완성되지는 않는다. 코드이그니터의 기본 함수들만 자동완성 기능으로 쓸 수 있게 되는 것이다.
내가 만든 클래스도 위 방식과 같은 방식으로 지정을 해 주면 된다. CI_CodeBase 에 있는 Model.php 와 Controller.php 를 열어서 같은 위치에 아래처럼 자신이 만든 클래스들을 추가해 준다. 굳이 CI_CodeBase에 이 클래스들이 있지 않아도 잘 작동하더라. 이 코드 자체는 CI_CodeBase에 써 줘야 하지만 말이다.
//custom start /** * @var Functions */ var $functions; /** * @var Stringtable */ var $stringtable; //custom end
이렇게 하면 아래와 같이 자동완성 기능을 사용할 수 있다.
댓글 남기기