Eclipse で CodeIgniter のコード補完
Eclipse で CodeIgniter のコード補完を使えるようにする方法です。
http://www.gostomski.co.uk/codeigniter/getting-full-auto-complete-with-codeigniter-in-eclipse より。
(1/26 追記) Eclipse で CodeIgniter 2.0 のコード補完 も参照してください。
CodeIgniter 1.7 の場合
system/codeigniter/Base5.php のコンストラクタの最後に以下のコードを追加します。
$agent = new CI_User_agent(); $benchmark = new CI_Benchmark(); $calendar = new CI_Calendar(); $cart = new CI_Cart(); $config = new CI_Config(); $db = new CI_DB_active_record(); $email = new CI_Email(); $encrypt = new CI_Encrypt(); $form_validation = new CI_Form_validation(); $ftp = new CI_FTP(); $image_lib = new CI_Image_lib(); $input = new CI_Input(); $lang = new CI_Language(); $output = new CI_Output(); $pagination = new CI_Pagination(); $parser = new CI_Parser(); $session = new CI_Session(); $table = new CI_Table(); $trackback = new CI_Trackback(); $typography = new CI_Typography(); $unit = new CI_Unit_test(); $upload = new CI_Upload(); $uri = new CI_URI(); $xmlrpc = new CI_Xmlrpc(); $xmlrpcs = new CI_Xmlrpcs(); $zip = new CI_Zip();
つまり、以下のようにします。
public function CI_Base()
{
self::$instance =& $this;
// コード補完のため
$agent = new CI_User_agent();
$benchmark = new CI_Benchmark();
$calendar = new CI_Calendar();
$cart = new CI_Cart();
$config = new CI_Config();
$db = new CI_DB_active_record();
$email = new CI_Email();
$encrypt = new CI_Encrypt();
$form_validation = new CI_Form_validation();
$ftp = new CI_FTP();
$image_lib = new CI_Image_lib();
$input = new CI_Input();
$lang = new CI_Language();
$output = new CI_Output();
$pagination = new CI_Pagination();
$parser = new CI_Parser();
$session = new CI_Session();
$table = new CI_Table();
$trackback = new CI_Trackback();
$typography = new CI_Typography();
$unit = new CI_Unit_test();
$upload = new CI_Upload();
$uri = new CI_URI();
$xmlrpc = new CI_Xmlrpc();
$xmlrpcs = new CI_Xmlrpcs();
$zip = new CI_Zip();
}
これで、コントローラで、例えば、
$this->input->
と入力し、コード補完のキー(alt + / または Ctrl + space)を押せば補完されました!
CodeIgniter 2.0 の場合
先ほどのブログにはありませんでしたが、system/core/Controller.php のコンストラクタに同じくコードを追加します。
現在の CodeIgniter Reactor だと、こうします。
public function __construct() { self::$instance =& $this; // Assign all the class objects that were instantiated by the // bootstrap file (CodeIgniter.php) to local class variables // so that CI can run as one big super object. foreach (is_loaded() as $var => $class) { $this->$var =& load_class($class); } $this->load =& load_class('Loader', 'core'); $this->load->_base_classes =& is_loaded(); $this->load->_ci_autoloader(); log_message('debug', "Controller Class Initialized"); // コード補完のため $agent = new CI_User_agent(); $benchmark = new CI_Benchmark(); $calendar = new CI_Calendar(); $cart = new CI_Cart(); $config = new CI_Config(); $db = new CI_DB_active_record(); $email = new CI_Email(); $encrypt = new CI_Encrypt(); $form_validation = new CI_Form_validation(); $ftp = new CI_FTP(); $image_lib = new CI_Image_lib(); $input = new CI_Input(); $lang = new CI_Language(); $output = new CI_Output(); $pagination = new CI_Pagination(); $parser = new CI_Parser(); $session = new CI_Session(); $table = new CI_Table(); $trackback = new CI_Trackback(); $typography = new CI_Typography(); $unit = new CI_Unit_test(); $upload = new CI_Upload(); $uri = new CI_URI(); $xmlrpc = new CI_Xmlrpc(); $xmlrpcs = new CI_Xmlrpcs(); $zip = new CI_Zip(); }