Továrničky – předávání parametrů přes create()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- MikeLacroix
- Člen | 60
Zdravím, snažím se rozběhat vytváření entit přes továrničky. Rád bych do nově vytvářené instance předával rovnou nějaké parametry. Příklad:
<?php
interface IUserFactory
{
/** @return User */
function create($name);
}
?>
<?php
class User {
public $name;
public function __construct($name) { $this->name = $name; }
}
?>
factories:
user: IUserFactory
A vytváření pak:
<?php
$user = $this->userFactory->create('Karel');
?>
Vše funguje dobře, dokud se nesnažím implementovat to předání parametru. Jak upravit configuraci, aby to sežralo i ten parametr? Díky!
- Pavel Macháň
- Člen | 282
MikeLacroix napsal(a):
Zdravím, snažím se rozběhat vytváření entit přes továrničky. Rád bych do nově vytvářené instance předával rovnou nějaké parametry. Příklad:
<?php interface IUserFactory { /** @return User */ function create($name); } ?>
<?php class User { public $name; public function __construct($name) { $this->name = $name; } } ?>
factories: user: IUserFactory
A vytváření pak:
<?php $user = $this->userFactory->create('Karel'); ?>
Vše funguje dobře, dokud se nesnažím implementovat to předání parametru. Jak upravit configuraci, aby to sežralo i ten parametr? Díky!
class UserFactory implements IUserFactory {
public function create($name) {
return new User($name);
}
}
- David Matějka
- Moderator | 6445
factories:
user:
implement: IUserFactory
class: User
parameters: [name]
arguments: [%name%]