Skip to content

Latest commit

 

History

History
71 lines (47 loc) · 2.39 KB

File metadata and controls

71 lines (47 loc) · 2.39 KB

PSR

.. sectionauthor:: Christoph Wurst <[email protected]>

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 :ref:`PSR-4 section<psr4>` instead.

PSR-3: Logger Interface

.. versionadded:: 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.

.. versionchanged:: 21
    Nextcloud ships version 1.1.3
.. versionchanged:: 23
    Nextcloud ships version 1.1.4
.. versionchanged:: 30
    Nextcloud ships version 2.0.0
.. versionchanged:: 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 :ref:`classloader docs<appclassloader>` for details.

PSR-11: Container Interface

.. versionadded:: 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 :ref:`dependency injection docs <dependency-injection>` for details.

.. versionchanged:: 22
    Nextcloud ships version 1.1.1
.. versionchanged:: 27
    Nextcloud ships version 2.0.2

PSR-20: Clock

.. versionadded:: 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().