Skip to content

An interface for objects that expose type-safe getter methods.

Notifications You must be signed in to change notification settings

phpgt/TypeSafeGetter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f760c05 · Apr 28, 2023

History

26 Commits
Apr 27, 2023
Apr 28, 2023
Apr 28, 2023
Jan 18, 2021
Apr 28, 2023
Apr 27, 2023
Apr 27, 2023
Apr 27, 2023
Apr 27, 2023
Apr 27, 2023

Repository files navigation

An interface for objects that expose type-safe getter methods.

Throughout PHP.Gt repositories, wherever an object represents enclosed data, a consistent interface is used to expose the data in a type-safe manner.


Build status Code quality Code coverage Current version PHP.Gt/TypeSafeGetter documentation

The following methods are defined by this interface:

  • get(string $name):mixed - A non-type-safe getter, used for getting keys that are not of an inbuilt type
  • getString(string $name):?string
  • getInt(string $name):?int
  • getFloat(string $name):?float
  • getBool(string $name):?bool
  • getDateTime(string $name):?DateTimeInterface
  • getInstance(string $name, class-string<T> $className):?T

Common areas you will see this interface used:

  • Database rows
  • User input (from the query string or posted form data)
  • Session and cookie storage
  • PHP.Gt's DataObject repository.

NullableTypeSafeGetter trait

A lot of repositories within PHP.Gt that utilise this class were repeating the same getter code, so this trait was introduced to remove the repetition. All getter functions of the interface are implemented, introducing a protected helper function getNullableType which removes the repetition of checking null values before casting them. The getNullableType function also allows a callback to be passed as the type parameter, allowing more complex nullable types to be constructed.