ctf0 / vscode-php-getters-setters

Fork of PHP Getters & Setters extension

Home Page:https://marketplace.visualstudio.com/items?itemName=cvergne.vscode-php-getters-setters-cv

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PHP Getters/Setters

based on https://github.com/cvergne/vscode-php-getters-setters + enhancements

Enhancements (check Notes)

  • Remove Property + getter/setter
  • Check CHANGELOG for changes

Custom Templates

By default the extension will generate getters & setters using its own templates but you can fully customize the markup used to generate them, by setting phpGettersSetters.templatesDir with the path to the directory that holds both your getter/setter.js.

  • Sample getter.js template:
module.exports = (property) => `
    /**
     * ${property.getterDescription()}
     *
     * @return  ${property.getType() ? property.getType() : 'mixed'}
     */
    public function ${property.getterName()}()
    {
        return $this->${property.getName()};
    }
`
  • Sample setter.js template:
module.exports = (property) => `
    /**
     * ${property.setterDescription()}
     *
     * @param   ${property.getType() ? property.getType() : 'mixed'}  \$${property.getName()}  ${property.getDescription() ? property.getDescription() : ''}
     *
     * @return self
     */
    public function ${property.setterName()}(${property.getTypeHint() ? property.getTypeHint() + ' ' : '' }\$${property.getName()})
    {
        $this->${property.getName()} = \$${property.getName()};
        return $this;
    }
`

As you can see a Property object is passed to templates so you can access any public method there. I also like the idea of adding more stuff as users find limits. Open an issue if you find something you cannot achieve.

Notes

  • Does NOT support multiple classes in a single document.
  • check (templates/getter.js & templates/setter.js) if you're not sure how to setup you own templates.

About

Fork of PHP Getters & Setters extension

https://marketplace.visualstudio.com/items?itemName=cvergne.vscode-php-getters-setters-cv

License:GNU General Public License v3.0


Languages

Language:TypeScript 94.8%Language:JavaScript 5.2%