With PHP Getters and Setters you can automatically generate Getters and Setters for your php classes.
- Generate Getters, Setters or Both
- Can be applied to all class properties or just to a single one
- Description, Type and Type Hinting automatically discovered from the variable docblock
- fully customizable templates
-
Generate PHP code
class test { /** * foo container * * @var AbcClass */ private $foo; }
-
Go to Tools -> PHP Getters and Setter
-
Getter and Setter will be generated:
class test { /** * foo container * * @var AbcClass */ private $foo; /** * Gets the foo container. * * @return AbcClass */ public function getFoo() { return $this->foo; } /** * Sets the foo container. * * @param AbcClass $foo the foo */ private function _setFoo(AbcClass $foo) { $this->foo = $foo; return $this; } }
As you can see, if you go though the trouble of commenting your variables, the generated functions can be used without modification.
This is an huge time saver!
Commands available are:
- Generate Getters and Setters
- Generate Getter
- Generate Setter
- Generate Getter for...
- Generate Setter for...
These can be accessed via the context menu (right click on the source of any open PHP file) or the command palette. The currently open file must be a PHP file.
type : boolean
default : false
description: ignore visibility for setters generation
type : string
default: camelCaseFluent
description: the template to use
type: list of strings
default: ["mixed", "int","integer", "double", "float", "number", "string", "boolean", "bool", "numeric", "unknown"]
description: if the property has one of the types listed type hinting will not be used
type: boolean
default: false
description: Set to true to generate setter code before getters
[package-dir] is your package directory.
-
Make a directory called
[package-dir]/PHP Getters and Setters
. -
Put the following in a file at
[package-dir]/PHP Getters and Setters/user_templates.py
.from .plugin import BaseTemplate class MyTemplate(BaseTemplate): style = 'camelCase' # can also be snakeCase getter = """ /** * Gets the %(description)s. * * @return %(type)s */ public function get%(normalizedName)s() { return $this->%(name)s; } """ setter = """ /** * Sets the %(description)s. * * @param %(type)s $%(name)s the %(humanName)s * * @return self */ public function set%(normalizedName)s(%(typeHint)s $%(name)s) { $this->%(name)s = $%(name)s; } """
-
Edit the parts between setter and getter how you want.
-
Edit your user settings for this package:
Preferences > Package Settings > PHP Getters and Setters
. -
Add the following settings
-
restart sublime to use the new template
This package is forked from https://github.com/francodacosta/sublime-php-getters-setters