Properties

Verze:

18. 06. 2025

Zodpovědná osoba:

Dominik Šlechta

Visibility and type MUST be declared on all properties. The var keyword MUST NOT be used. There MUST NOT be more than one property per statement. Property names MUST NOT be prefixed with underscore.

Visibility Declaration

  • Rule: Visibility (e.g., public, protected, private) MUST be declared on all properties.

  • Reason: Visibility modifiers help clarify how properties can be accessed and modified. Explicit visibility declarations improve code readability and maintainability.

Example:

class MyClass {
    public $name;
    protected $age;
    private $salary;
}

Type Declaration

  • Rule: Type MUST be declared on all properties.

  • Reason: Declaring types for properties helps ensure type safety, prevents errors, and improves code clarity.

Example:

class MyClass {
    public string $name;
    protected int $age;
    private float $salary;
}

Avoid the var Keyword

  • Rule: The var keyword MUST NOT be used to declare a property.

  • Reason: The var keyword is an outdated way of declaring properties, and modern PHP supports explicit visibility modifiers (public, protected, private) and type declarations.

One Property per Statement

  • Rule: There MUST NOT be more than one property declared per statement.

  • Reason: Declaring one property per statement improves code readability and makes it easier to add, modify, or remove properties in the future.

Example (Correct):

class MyClass {
    public string $name;
    private int $age;
}

Example (Incorrect):

class MyClass {
    public string $name, int $age;
}

No Underscore Prefix for Protected/Private Properties

  • Rule: Property names MUST NOT be prefixed with a single underscore to indicate protected or private visibility.

  • Reason: The underscore prefix explicitly has no meaning and can lead to confusion. Visibility should be indicated by the visibility modifier (public, protected, private), not by a naming convention.

Example (Correct):

class MyClass {
    private string $name;
}

Example (Incorrect):

class MyClass {
    private string $_name;
}

Space Between Type Declaration and Property Name

  • Rule: There MUST be a space between the type declaration and the property name.

  • Reason: This helps improve readability and aligns with modern PHP conventions.

Example (Correct):

class MyClass {
    public string $name;
    private int $age;
}

Example (Incorrect):

class MyClass {
    publicstring$name;
}

Summary:

  • Visibility MUST be declared on all properties.

  • Type MUST be declared on all properties.

  • var keyword MUST NOT be used to declare a property.

  • There MUST NOT be more than one property declared per statement.

  • Property names MUST NOT be prefixed with a single underscore.

  • There MUST be a space between the type declaration and the property name.