Live template în PHPStorm: numărarea parametrilor

Live template în PHPStorm: numărarea parametrilor

Unul din lucrurile care mă enervează la WordPress este că hook-urile au mereu nevoie de a specifica numărul parametrilor. Altfel nu îl pasează decât pe primul. Mai exact, dacă avem o acțiune de forma:

do_action('acțiune', 'foo', 'bar', 'baz')

Ca să ne legăm de hook, folosim add_action:

add_action('acțiune', function() { 
  var_dump(func_get_args()); 
});

Dar, surpriză! Avem un singur parametru trimis! Pentru a avea toți parametri, va trebui să specificăm prioritate și numărul parametrilor:

add_action('acțiune', function() { 
  var_dump(func_get_args()); 
}, 10, 3);

Iar chestia asta mi se pare enervantă, mai ales că editorul (PHP Storm) nu știe să adauge automat numărul argumentelor când folosim un live template. Sau… așa credeam.

Live Template

În TextMate/E-text existau bundles. În Sublime existau Snippets. În PHP Storm există Live Templates. În toate cazurile este vorba de o manipulare (oarecum) inteligentă a textului. Cea mai folosită treabă? O abreviere de câteva litere + TAB => o bucată mai mare de cod. Pentru acțiunile WP, de exemplu, am făcut următoarea treabă:

add_action('$name$', function($args$){ 
    $END$ 
}, $priority$, $count$);

La fiecare TAB apăsat, iterez prin $name, $args etc, termin la $END$. În PHP Storm, există posibilitatea de a face câteva transformări, ceea ce ne ajută.

Pasul 1: Edităm variabilele

Get Groovy

Printre aceste transformări se numără și groovyScript. Nu știi ce este? Nici o problemă, nici eu nu știam până acum o oră. Dar expresia arată așa:

groovyScript("_1.split(',').length", args)
Pasul 2: Adăugăm expresia magică.

Și cam atât.

Adaugă un comentariurăspuns pentru

Poți adăuga bucăți de cod folosind [code]codul tău aici[/code], [js][/js], [php][/php] etc.

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter