Generera setter & getter med Symfony i Vim

Detta är väldigt specifikt för både Vim och Symfony men jag kände mig lite extra lat och ville ha något enkelt för att generera setters och getters efter jag skapat en ny attribute i min doctrine entity.

Exempel på attribute:

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255)
 */
 private $name;

 
Den här funktionen plockar ut korrekta namn på bundles och filer för att sen generera en komplett entity åt dig med hjälp av Symfony’s console. Jag valde att inte skapa en backup men du kan enkelt ta bort ”–no-backup” och så får du en backup om du föredrar det. Snabbkommandot jag valde är <leader>ge som står för ”generate entity”. Ta bort eller ändra till det du föredrar.

Lägg in detta i din .vimrc:

map <leader>ge :GenerateSetterAndGetter<CR>
command! GenerateSetterAndGetter call GenerateSetterAndGetter()

function! GenerateSetterAndGetter()
  let path = expand('%:p')
  let matches = matchlist(path, '\(.\+\)\/src\/\(.\+\)\/\(.\+\)\/Entity\/\(.\+\)\.php')
  if len(matches) > 0
    execute(printf('!php app/console doctrine:generate:entities %s%s:%s --no-backup', matches[2], matches[3], matches[4]))
  else
    echo 'This is no entity'
  endif
endfunction

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *