PSR
On this page you find information about the implemented php standards recommendations in Nextcloud.
PSR-0: Autoloading
This standard has been deprecated and will be removed in Nextcloud 27. Please see the PSR-4 section instead.
PSR-3: Logger Interface
Added in version 19.
The dependency injection container can inject an instance of a \Psr\Log\LoggerInterface
.
The PSR-3 implementation shall easy the integration of 3rd party libraries that require the PSR-3 logger.
Changed in version 21: Nextcloud ships version 1.1.3
Changed in version 23: Nextcloud ships version 1.1.4
Changed in version 30: Nextcloud ships version 2.0.0
Changed in version 31: The \Psr\Log\LoggerInterface
fully replaced the Nextcloud internal logging methods.
PSR-4: Autoloading
The PSR-4 standard describes how class files should be named, so Nextcloud can automatically load them. See the classloader docs for details.
PSR-11: Container Interface
Added in version 20.
The dependency injection container follows the PSR-11 container interface, so you may type-hint \Psr\Container\ContainerInterface
whenever you want an instance of a container and use has($id)
to check for existence and get($id)
to retrieve an instance of a service. See the dependency injection docs for details.
Changed in version 22: Nextcloud ships version 1.1.1
Changed in version 27: Nextcloud ships version 2.0.2
PSR-20: Clock
Added in version 27.
The \OCP\AppFramework\Utility\ITimeFactory
class follows the PSR-20 clock interface, so you may type-hint \PSR\Clock\ClockInterface
and then use the now()
method whenever you want to get the current time. You can also change the timezone for the to be returned \DateTimeImmutable
instance, by getting a new ITimeFactory
from ITimeFactory::withTimeZone()
.