diff --git a/en/10_Contributing/05_Coding_Conventions/01_PHP_Coding_Conventions.md b/en/10_Contributing/05_Coding_Conventions/01_PHP_Coding_Conventions.md index 7ba79b871..2ceffcb09 100644 --- a/en/10_Contributing/05_Coding_Conventions/01_PHP_Coding_Conventions.md +++ b/en/10_Contributing/05_Coding_Conventions/01_PHP_Coding_Conventions.md @@ -172,3 +172,4 @@ PHPDocs are not only useful when looking at the source code, but are also used i - Prefer the identical `===` operator over the equality `==` operator for comparisons. - If you directly reference a third-party dependency in code, then ensure the dependency is required in the module's `composer.json` file. - Avoid hardcoding values when there is a method available to dynamically get a value, for example use [`DataObjectSchema::tableName()`](api:SilverStripe\ORM\DataObjectSchema::tableName()) to get the table name for a `DataObject` model rather than hard coding it. +- Do not use the `self` keyword, e.g. `self::myMethod()` instead use the short-name of the current class e.g. `MyClass::myMethod()` which is functionally equivalent. This avoids a specific class of bug that is introduced when using late static binding downstream from `self`. Note that use of the `static` keyword is perfectly OK.