, .
. , . , , ( , ) . , invokables , , , . ( ).
, , , . LanguageAwareInterface.
namespace User\Model;
interface LanguageAwareInterface {
public function getLanguage();
public function setLanguage($language);
}
.
namespace User\Model;
class MyModel implements \User\Model\LanguageAwareInterface {
protected $language;
public function getLanguage() {
return $this->language;
}
public function setLanguage($language) {
$this->language = $language;
}
}
, , , , , , . , , .
. , , , (, Application, Zend). ( ) Module getServiceConfig(), YourModule/config/module.config.php service_manager. ; , - , . .
return array(
'service_manager' => array(
'initializers' => array(
'language' => function($service, $sm) {
if ($service instanceof \User\Model\LanguageAwareInterface) {
$session = new \Zend\Session\Container('base');
if ($session->language === null) {
$config = $sm->get('Config');
$session->language = $config['translator']['locale'];
}
$service->setLanguage($session->language);
}
},
),
),
);
, , , , . , . , , , . , . , , , , , . , , , , . , , , ; . .