라이브 템플릿을 사용합시다!
8876 단어 PhpStorm
라이브 템플릿이란?
Live Template는 소위 스니펫 기능입니다.
디폴트에서도 몇 개 등록되어 있습니다만, 에디터를 손에 익숙해 가는 과정에서 이 기능을 다루는 것은 필수.
자주 사용하는 정형문이나 프레임워크 특유의 쓰는 방법 등을 점점 등록해 갑시다.
라이브 템플릿을 사용해보기
우선은 디폴트로 등록되어 있는 Live Template를 사용해, 사용법을 소개해 보겠습니다.
모든 PHP 파일에서 "forek"까지 입력해보십시오.
자동 완성 창에서 다음과 같이 나오면 Tab을 누르십시오.
그러면 다음과 같은 코드로 확장됩니다.
이 상태에서 한층 더 Tab을 누르면 정의된 부분, 이 경우는 $의 직후에 커서가 이동해 그대로 코드를 입력할 수 있습니다. (Shift+Tab로 뒤로 돌아갈 수 있습니다)
이것이 Live Template입니다.
※위의 자동 완성 창이 나오지 않는 경우는 Code Completion(Ctrl+Space), 그래도 안되는 것 같으면 Insert LiveTemplate(Cmd+J)에서 삽입할 수 있습니다.
라이브 템플릿 등록하기
위에서 설명한 대로 기본적으로 몇 가지 템플릿이 등록되어 있습니다만, 평상시 사용해 나가는데 있어서 커스터마이즈하고 싶은 욕구가 나오면 자신 취향에 추가해 봅시다.
추가는
에서 수행합니다.
여기에서는 PHP의 var_dump() 함수를 확장한 [dmp]라는 Live Template를 만들어 보겠습니다.
오른쪽 상단의 [+]에서 [1. Live Template]를 선택하고 아래 화면에서 이렇게 입력해 봅니다.
Abbrevivation은 그 Live Template의 이름, Description은 설명문.
템플릿 텍스트에 확장 후 문자열을 지정합니다.
또, Template text로 $hoge$와 같이 하는 것으로 그 개소를 변수로서 정의할 수 있습니다.
위와 같이 $var$를 입력하면 오른쪽의 [Edit variables]에서 변수의 초기값을 정의할 수 있습니다.
여기까지 오른쪽 하단의 OK를 눌러 완료입니다.
그리고는 PHP 파일내에서 [dmp]라고 하는 캐릭터 라인으로부터 이하와 같이 전개되면 OK입니다.
echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
echo '<pre>';
var_dump();
echo '</pre>';
exit;
(덤) CakePHP 용 Live Template
CakePHP의 모델계의 메소드의 인수가 많아서 까다롭기 때문에, 이하와 같이 잘 호출하는 것을 Live Template화해 사용하고 있습니다.
전 스니펫은 CakeVim의 작가인 @violetyk씨의 것을 참고로 하겠습니다.
$this->$TABLE$->find('$first$', array(
'contain' => false,
'conditions' => array(
'$column$' => $conditions$,
),
// 'fields' => array(
// '',
// ),
// 'fields' => array('count(id) as "Model__count"'),
// 'limit' => 10,
// 'order' => array('Model.col' => 'desc/asc'),
// 'order' => 'rand()',
// 'group' => array('Model.col'),
// 'recursive' => -1,
));
var $hasMany = array(
'$model_name$' => array(
'className' => '$model_name$', // 相手側のモデルクラス名。
'foreignKey' => '$id$', // 相手側で持っている自分に対するキーの名前。デフォルトは「自分_id」
// 'conditions' => array(), // 該当レコードに追加する検索条件
// 'fields' => array(), // 該当フィールド名
// 'order' => array('' => 'desc/asc'), // 並び替え絵を行うフィールド
// 'limit' => 10, // 取得したいレコード最大数
// 'offset' => 5, // スキップするレコード数
// 'dependent' => true, // 自分を削除した場合にアソシエーション側も削除する場合true(要deleteメソッドの第二引数true)
// 'exclusive' => false, // deleteAllによって一括で削除を行いたい場合はtrue
// 'finderQuery' => '', // find時に独自のSQLが必要な場合に指定する
),
);
var $hasOne = array(
'$model_name$' => array(
'className' => '$model_name$', //相手側のモデルクラス名
'foreignKey' => '$id$', // 相手側で持っている自分に対するキーの名前。デフォルトは「自分_id」
'conditions' => array(), // 該当レコードに追加する検索条件
'fields' => array(), // 該当フィールド名
'dependent' => false, // 自分を削除した場合にアソシエーション側も削除する場合はtrue。
),
);
'$field_name$' => array(
'rule' => '$rule$',
'message' => '$error_message$',
// 'required' => true, /* 必須*/
// 'allowEmpty' => true, /* 空文字の許可*/
// 'last' => false, /* そのエラーが発生した時点で以降のバリデーションは打ち切り */
// 'on' => 'update', /* 'create'か'update'時にバリデーションを限定する */
),
Reference
이 문제에 관하여(라이브 템플릿을 사용합시다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Vexus2/items/cc35757f98ef95871c5f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)