From 3be11fb151b8053e16f42a37b28e6cdecd751440 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Wed, 5 Jun 2024 14:18:43 +1200 Subject: [PATCH] DOC Do not use self --- .../05_Coding_Conventions/01_PHP_Coding_Conventions.md | 1 + 1 file changed, 1 insertion(+) 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.