diff --git a/README.md b/README.md index a3c10d8..82c7233 100644 --- a/README.md +++ b/README.md @@ -443,32 +443,72 @@ 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; - -function createMenu(MenuConfig $config): void +class City { - // ... + private $region = ''; + private $district = ''; + private $city = ''; + + 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) + { + // ... + } } ```