.. rst-class:: phpdoctorst
.. role:: php(code)
:language: php
ContainerTrait
==============
.. php:namespace:: atk4\core
.. php:trait:: ContainerTrait
.. rst-class:: phpdoc-description
| This trait makes it possible for you to add child objects
| into your object\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#9 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L9>`_
Properties
----------
.. php:attr:: public static _containerTrait
.. rst-class:: phpdoc-description
| Check this property to see if trait is present in the object\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#16 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L16>`_
:Type: bool
.. php:attr:: public static elements
.. rst-class:: phpdoc-description
| short\_name =\> object hash of children objects\. If the child is not
| trackable, then object will be set to "true" \(to avoid extra reference\)\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#24 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L24>`_
:Type: array
Methods
-------
.. rst-class:: public
.. php:method:: public _unique_element( $desired)
.. rst-class:: phpdoc-description
| Returns unique element name based on desired name\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#35 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L35>`_
:Parameters:
* **$desired** (string)
:Returns: string
.. rst-class:: public
.. php:method:: public add( $obj, $args=\[\])
.. rst-class:: phpdoc-description
| If you are using ContainerTrait only, then you can safely
| use this add\(\) method\. If you are also using factory, or
| initializer then redefine add\(\) and call
| \_add\_Container, \_add\_Factory,\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#60 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L60>`_
:Parameters:
* **$obj** (mixed)
* **$args** (array | string)
:Throws: :any:`\\atk4\\core\\Exception <atk4\\core\\Exception>`
:Returns: object
.. rst-class:: protected
.. php:method:: protected _add_Container( $element, $args=\[\])
.. rst-class:: phpdoc-description
| Extension to add\(\) method which will perform linking of
| the object with the current class\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#101 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L101>`_
:Parameters:
* **$element** (object)
* **$args** (array | string)
:Throws: :any:`\\atk4\\core\\Exception <atk4\\core\\Exception>`
:Returns: object
.. rst-class:: public
.. php:method:: public removeElement( $short_name)
.. rst-class:: phpdoc-description
| Remove child element if it exists\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#181 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L181>`_
:Parameters:
* **$short_name** (string) short name of the element
:Throws: :any:`\\atk4\\core\\Exception <atk4\\core\\Exception>`
:Returns: $this
.. rst-class:: protected
.. php:method:: protected _shorten( $desired)
.. rst-class:: phpdoc-description
| Method used internally for shortening object names\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#207 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L207>`_
:Parameters:
* **$desired** (string) Desired name of new object.
:Returns: string Shortened name of new object\.
.. rst-class:: public
.. php:method:: public getElement( $short_name)
.. rst-class:: phpdoc-description
| Find child element by its short name\. Use in chaining\.
| Exception if not found\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#246 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L246>`_
:Parameters:
* **$short_name** (string) Short name of the child element
:Throws: :any:`\\atk4\\core\\Exception <atk4\\core\\Exception>`
:Returns: object
.. rst-class:: public
.. php:method:: public hasElement( $short_name)
.. rst-class:: phpdoc-description
| Find child element\. Use in condition\.
:Source:
`vendor/atk4/core/src/ContainerTrait.php#266 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/ContainerTrait.php#L266>`_
:Parameters:
* **$short_name** (string) Short name of the child element
:Returns: object | bool
|