The PHP domain provides the following directives. Most directives are similar to Python’s.
Each directive populates the index, and or the namespace index.
This directive declares a new PHP namespace. It accepts nested namespaces by separating namespaces with \. It does not generate any content like php:class does. It will however, generate an entry in the namespace/module index.
It has synopsis and deprecated options, similar to py:module
This directive declares a new PHP global variable.
Defines a new global/namespaced function outside of a class. You can use many of the same field lists as the python domain. However, raises is replaced with throws
This directive declares a new PHP constant, you can also used it nested inside a class directive to create class constants.
This directive declares a new Exception in the current namespace. The signature can include constructor arguments.
Describe an interface. Methods and constants belonging to the interface should follow or be nested inside this directive.
Describe a trait. Methods beloning to the trait should follow or be nested inside this directive.
Describes a class. Methods, attributes, and constants belonging to the class should be inside this directive’s body:
.. php:class:: MyClass
Class description
.. php:method:: method($argument)
Method description
Attributes, methods and constants don’t need to be nested. They can also just follow the class declaration:
.. php:class:: MyClass
Text about the class
.. php:method:: methodName()
Text about the method
See also
.. php:method:: name .. php:attr:: name .. php:const:: name
Describe a class method, its arguments, return value, and exceptions:
.. php:method:: instanceMethod($one, $two)
:param string $one: The first parameter.
:param string $two: The second parameter.
:returns: An array of stuff.
:throws: InvalidArgumentException
This is an instance method.
Describe a static method, its arguments, return value and exceptions, see php:method for options.
Describe an property/attribute on a class.
The following roles refer to php objects and are links are generated if a matching directive is found:
Reference a namespace. Nested namespaces need to be separated by two \ due to the syntax of ReST:
.. php:ns:`LibraryName\\SubPackage` will work correctly.
Reference a PHP function either in a namespace or out. If the function is in a namespace, be sure to include the namespace, unless you are currently inside the same namespace.
Reference a global variable whose name has $ prefix.
Reference either a global constant, or a class constant. Class constants should be preceded by the owning class:
DateTime has an :php:const:`DateTime::ATOM` constant.
Reference a class; a name with namespace can be used. If you include a namespace, you should use following style:
:php:class:`LibraryName\\ClassName`
Reference a method of a class/interface/trait. This role supports both kinds of methods:
:php:meth:`DateTime::setDate`
:php:meth:`Classname::staticMethod`
Reference a property on an object:
:php:attr:`ClassName::$propertyName`
Reference an exception. A namespaced name may be used.
Reference an interface. A namespaced name may be used.
Reference a trait. A namespaced name may be used.