Skip to content

ctf0/vscode-php-getters-setters

 
 

Repository files navigation

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.

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages

  • TypeScript 94.8%
  • JavaScript 5.2%