PROPERTY TYPES <-- /** * Public property, everyone can access this property. * @var Type */ public $property; /** * Private property, only this instance can access this property. * @var Type */ private $property; /** * Protected property, this instance and childs can access this property. * @var Type */ protected $property; /** * Static property, is the same for all instances of this class. * @var Type */ static $property; // --> FUNCTION TYPES <-- /** * Public function, everyone can access this function. * @param Type * @return Type */ public function publicFunction(Type $var = null): Type { } /** * Private function, only this instance can access this function. * @param Type * @return Type */ private function privateFunction(Type $var = null): Type { } /** * Protected function, this instance and childs can access this function. * @param Type * @return Type */ protected function protectedFunction(Type $var = null): Type { } /** * Static function, doesn't need an instance to be executed. * @param Type * @return Type */ public static function staticFunction(Type $var = null): Type { } // --> MAGIC METHODS <-- /** * Gets triggered on creating a new class instance * http://php.net/manual/en/language.oop5.decon.php * @param Type * @return void */ public function __construct(Type $var = null) { } /** * Gets triggered on destruction of a class instance * http://php.net/manual/en/language.oop5.decon.php * @return void */ public function __destruct() { } /** * __set() is run when writing data to inaccessible properties. * http://php.net/manual/en/language.oop5.overloading.php * @param string name * @param mixed value * @return void */ public function __set(string $name , mixed $value) { } /** * __get() is utilized for reading data from inaccessible properties. * http://php.net/manual/en/language.oop5.overloading.php * @param string name * @return mixed */ public function __get(string $name) { } /** * __isset() is triggered by calling isset() or empty() on inaccessible properties. * http://php.net/manual/en/language.oop5.overloading.php * @param string name * @return bool */ public function __isset(string $name) { } /** * __unset() is invoked when unset() is used on inaccessible properties. * http://php.net/manual/en/language.oop5.overloading.php * @param string name * @return void */ public function __unset(string $name) { } /** * __call is triggered when invoking inaccessible methods in an object context. * http://php.net/manual/en/language.oop5.overloading.php * @param string name * @param array arguments * @return mixed */ public function __call(string $name, array $arguments) { } /** * __callStatic() is triggered when invoking inaccessible methods in a static context. * http://php.net/manual/en/language.oop5.overloading.php * @param string name * @param array arguments * @return mixed */ public static function __callStatic(string $name, array $arguments) { } /** * http://php.net/manual/en/language.oop5.magic.php * @return array */ public function __sleep() { } /** * http://php.net/manual/en/language.oop5.magic.php * @return void */ public function __wakeup() { } /** * http://php.net/manual/en/language.oop5.magic.php * @return string */ public function __toString() { } /** * http://php.net/manual/en/language.oop5.magic.php * @param Type * @return mixed */ public function __invoke(Type $var = null) { } /** * http://php.net/manual/en/language.oop5.magic.php * @param array properties * @return object */ public static function __set_state(array $properties) { } /** * http://php.net/manual/en/language.oop5.magic.php * @return array */ public function __debugInfo() { } } /** * Every class that has implemented this interface need to have the same functions. */ interface InterfaceName { public function FunctionName(Type $var = null): Type; } /** * Combination of class and interface. */ abstract class AbstractClassName { /** * Classes extending this abstract class need to have this function. * @param Type * @return Type */ abstract function abstractFunction(Type $var = null): Type; }