1
0
mirror of https://github.com/jupeter/clean-code-php.git synced 2025-09-25 13:39:04 +02:00

use VO in example of "Function arguments (2 or fewer ideally)"

This commit is contained in:
Peter Gribanov
2019-07-23 14:01:43 +03:00
parent 810f537ab2
commit eb31d2d2aa

View File

@@ -443,33 +443,73 @@ of the time a higher-level object will suffice as an argument.
**Bad:**
```php
function createMenu(string $title, string $body, string $buttonText, bool $cancellable): void
class Questionnaire
{
public function __construct(
string $firstname,
string $lastname,
string $patronymic,
string $region,
string $district,
string $city,
string $phone,
string $email
) {
// ...
}
}
```
**Good:**
```php
class MenuConfig
class Name
{
public $title;
public $body;
public $buttonText;
public $cancellable = false;
private $firstname = '';
private $lastname = '';
private $patronymic = '';
public function __construct(string $firstname, string $lastname, string $patronymic)
{
$this->firstname = $firstname;
$this->lastname = $lastname;
$this->patronymic = $patronymic;
}
}
$config = new MenuConfig();
$config->title = 'Foo';
$config->body = 'Bar';
$config->buttonText = 'Baz';
$config->cancellable = true;
class City
{
private $region = '';
private $district = '';
private $city = '';
function createMenu(MenuConfig $config): void
public function __construct(string $region, string $district, string $city)
{
$this->region = $region;
$this->district = $district;
$this->city = $city;
}
}
class Contact
{
private $phone = '';
private $email = '';
public function __construct(string $phone, string $email)
{
$this->phone = $phone;
$this->email = $email;
}
}
class Questionnaire
{
public function __construct(Name $name, City $city, Contact $contact)
{
// ...
}
}
```
**[⬆ back to top](#table-of-contents)**