diff --git a/Classes.md b/Classes.md new file mode 100644 index 0000000..a1017de --- /dev/null +++ b/Classes.md @@ -0,0 +1,79 @@ +# Use PascalCase for class names + +Class names must be written in [PascalCase](http://wiki.c2.com/?PascalCase). + +
Example

+ +**Bad** + +```PHP +class mySUPERclass { ... } +``` + +**Good** + +```PHP +class MySuperClass { ... } +``` + +

+ +_Reference_: [`PEAR.NamingConventions.ValidClassName`](https://github.com/squizlabs/PHP_CodeSniffer/blob/master/src/Standards/PEAR/Sniffs/NamingConventions/ValidClassNameSniff.php) + +# Do not use final statements inside final classes. + +Final classes cannot be extended, so it doesn't make sense to add the final keyword to class members. + +
Example

+ +**Bad** + +```PHP +final class MyClass { + final public function MyFunction() { + + } +} +``` + +**Good** (remove the final keyword from class members) + +```PHP +final class MyClass { + public function MyFunction() { + + } +} +``` + +

+ +_Reference_: [`Generic.CodeAnalysis.UnnecessaryFinalModifier`](https://github.com/squizlabs/PHP_CodeSniffer/blob/master/src/Standards/Generic/Sniffs/CodeAnalysis/UnnecessaryFinalModifierSniff.php) + +# Do not override methods to call their parent + +It doesn't make sense to override a method only to call their parent. When overriding methods, make sure to add some functionality to it. + +
Example

+ +**Bad** + +```PHP +class MyClass extends BaseClass { + public function BaseFunction() { + parent::BaseFunction(); + } +} +``` + +**Good** (don't override the function) + +```PHP +class MyClass extends BaseClass { + +} +``` + +

+ +_Reference_: [`Generic.CodeAnalysis.UselessOverridingMethod`](https://github.com/squizlabs/PHP_CodeSniffer/blob/master/src/Standards/Generic/Sniffs/CodeAnalysis/UselessOverridingMethodSniff.php) \ No newline at end of file