%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.102 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/egp/vendor/codeception/specify/docs/ |
Upload File : |
## Codeception\Specify\ConfigBuilder
Configure Specify usage.
Specify copies properties of object and restores them for each specify block.
Objects can be cloned deeply or using standard `clone` operator.
Specify can be configured to prevent specific properties in specify blocks, to choose default cloning method,
or cloning method for specific properties.
```php
<?php
$this->specifyConfig()
->ignore('user') // do not clone
?>
```
#### *public* __construct($config = null)
#### *public* ignore($properties = null)
Ignore cloning specific object properties in specify blocks.
```php
<?php
$this->user = new User;
$this->specifyConfig()->ignore('user');
$this->specify('change user name', function() {
$this->user->name = 'davert';
});
$this->user->name == 'davert'; // name changed
?>
```
* `param array` $properties
* `return` $this
#### *public* ignoreClasses($classes = null)
Adds specific class to ignore list, if property is an instance of class it will not be cloned for specify block.
* `param array` $classes
* `return` $this
#### *public* deepClone($properties = null)
Turn on/off deep cloning mode.
Deep cloning mode can also be specified for specific properties.
```php
<?php
$this->user = new User;
$this->post = new Post;
$this->tag = new Tag;
// turn on deep cloning by default
$this->specifyConfig()->deepClone();
// turn off deep cloning by default
$this->specifyConfig()->deepClone(false);
// deep clone only user and tag property
$this->specifyConfig()->deepClone('user', 'tag');
// alternatively
$this->specifyConfig()->deepClone(['user', 'tag']);
?>
```
* `param bool` $properties
* `return` $this
#### *public* shallowClone($properties = null)
Disable deep cloning mode, use shallow cloning by default, which is faster.
Deep cloning mode can also be disabled for specific properties.
```php
<?php
$this->user = new User;
$this->post = new Post;
$this->tag = new Tag;
// turn off deep cloning by default
$this->specifyConfig()->shallowClone();
// turn on deep cloning by default
$this->specifyConfig()->shallowClone(false);
// shallow clone only user and tag property
$this->specifyConfig()->shallowClone('user', 'tag');
// alternatively
$this->specifyConfig()->shallowClone(['user', 'tag']);
?>
```
* `param bool` $properties
* `return` $this
#### *public* cloneOnly($properties)
Clone only specific properties
```php
<?php
$this->specifyConfig()->cloneOnly('user', 'post');
?>
```
* `param` $properties
* `return` $this