.. rst-class:: phpdoctorst
.. role:: php(code)
:language: php
FactoryTrait
============
.. php:namespace:: atk4\core
.. php:trait:: FactoryTrait
:Source:
`vendor/atk4/core/src/FactoryTrait.php#5 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/FactoryTrait.php#L5>`_
Properties
----------
.. php:attr:: public static _factoryTrait
.. rst-class:: phpdoc-description
| Check this property to see if trait is present in the object\.
:Source:
`vendor/atk4/core/src/FactoryTrait.php#12 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/FactoryTrait.php#L12>`_
:Type: bool
Methods
-------
.. rst-class:: public
.. php:method:: public mergeSeeds( $seed, $seed2, ...$more_seeds)
.. rst-class:: phpdoc-description
| Given two seeds \(or more\) will merge them, prioritizing the first argument\.
| If object is passed on either of arguments, then it will setDefaults\(\) remaining
| arguments, respecting their positioning\.
|
| See full documentation\.
:Source:
`vendor/atk4/core/src/FactoryTrait.php#27 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/FactoryTrait.php#L27>`_
:Parameters:
* **$seed** (array | object | mixed)
* **$seed2** (array | object | mixed)
* **...$more_seeds** (array)
:Returns: object | array if at least one seed is an object, will return object
.. rst-class:: public
.. php:method:: public factory( $seed, $defaults=\[\], $prefix=null)
.. rst-class:: phpdoc-description
| Given a Seed \(see doc\) as a first argument, will create object of a corresponding
| class, call constructor with numerical arguments of a seed and inject key/value
| arguments\.
| Argument $defaults has the same effect as the seed, but will not contain the class\.
| Class is always determined by seed, except if you pass object into defaults\.
|
| To learn more about mechanics of factory trait, see documentation
:Source:
`vendor/atk4/core/src/FactoryTrait.php#112 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/FactoryTrait.php#L112>`_
:Parameters:
* **$seed** (mixed)
* **$defaults** (array)
* **$prefix** (string) Optional prefix for class name
:Returns: object
.. rst-class:: public
.. php:method:: public normalizeClassName( $name, $prefix=null)
.. rst-class:: phpdoc-description
| First normalize class name, then add specified prefix to
| class name\. Finally if $app is defined, and has method
| \`normalizeClassNameApp\` it will also get a chance to
| add prefix\.
| Rules observed, in order:
| \- If class starts with "\." then prefixing is always done\.
| \- If class contains "\\" prefixing is never done\.
| \- If class \(with prefix\) exists, do prefix\.
| \- don\'t prefix otherwise\.
|
| Example: normalizeClassName\(\'User\', \'Model\'\) == \'Model\\User\';
| Example: normalizeClassName\(Test\\User::class, \'Model\'\) == \'Test\\User\'; \# or as per "use"
| Example: normalizeClassName\(\'Test/User\', \'Model\'\) == \'Model\\Test\\User\';
| Example: normalizeClassName\(\'\./User\', \'Model\'\) == \'Model\\User\';
| Example: normalizeClassName\(\'User\', \'Model\'\) == \'Model\\User\'; \# if exists, \'User\' otherwise
|
| \# If used without namespace:
| Example: normalizeClassName\(User::class, \'Model\'\) == \'Model\\User\'; \# if exists, \'User\' otherwise
:Source:
`vendor/atk4/core/src/FactoryTrait.php#198 <https://github.com/atk4/core/blob/master/vendor/atk4/core/src/FactoryTrait.php#L198>`_
:Parameters:
* **$name** (string) Name of class
* **$prefix** (string) Optional prefix for class name
:Returns: string Full, normalized class name
|