/** * Default password reset validation. * * You can provide your own validation by attaching callback to * 'member.password.reset' event. * * @param \Zend_EventManager_Event $event * @return \Zend_Filter_Input */ public static function reset(\Zend_EventManager_Event $event) { $data = $event->getParam('data'); $input = new \Zend_Filter_Input(['*' => ['StringTrim', 'StripTags']], ['password' => [new \Zend_Validate_StringLength(6), 'PasswordStrength', 'presence' => 'required'], 'password_confirm' => [new \Zend_Validate_Callback(function ($v) use($data) { return $v === $data['password']; }), 'presence' => 'required', 'messages' => 'Password do not match']], $data, [\Zend_Filter_Input::VALIDATOR_NAMESPACE => 'Member_Validate']); return $input; }
/** * Callback for 'member.register.post' event. * Sending email with confirmation links. * * @param \Zend_EventManager_Event $event * @return \Member * @throws \Exception */ public static function confirm(\Zend_EventManager_Event $event) { /** @var \Member $member */ $member = $event->getTarget(); $member->setConfirmHash($member->createHash()); $member->save(); $doc = Email::getByPath(Config::get('emails')->registerConfirm); if (!$doc) { throw new \Exception('No confirmation email defined'); } /** @var \Zend_Controller_Request_Http $request */ $request = \Zend_Controller_Front::getInstance()->getRequest(); $email = new Mail(); $email->addTo($member->getEmail()); $email->setDocument($doc); $email->setParams(['host' => sprintf('%s://%s', $request->getScheme(), $request->getHttpHost()), 'member_id' => $member->getId()]); $email->send(); return $member; }
/** * system.console.init event handler * * @param \Zend_EventManager_Event $e */ public function handleSystemConsoleInitEvent(\Zend_EventManager_Event $e) { /** @var Application $application */ $application = $e->getTarget(); $application->addCommands($this->getConsoleCommands()); }
public function testTriggerCanTakeAnOptionalCallbackArgumentToEmulateTriggerUntil() { $this->events->attach(__FUNCTION__, array($this, 'returnEvent')); // Four scenarios: // First: normal signature: $responses = $this->events->trigger(__FUNCTION__, $this, array(), array($this, 'returnOnEvent')); $this->assertTrue($responses->stopped()); // Second: Event as $argv parameter: $event = new Zend_EventManager_Event(); $responses = $this->events->trigger(__FUNCTION__, $this, $event, array($this, 'returnOnEvent')); $this->assertTrue($responses->stopped()); // Third: Event as $target parameter: $event = new Zend_EventManager_Event(); $event->setTarget($this); $responses = $this->events->trigger(__FUNCTION__, $event, array($this, 'returnOnEvent')); $this->assertTrue($responses->stopped()); // Fourth: Event as $event parameter: $event = new Zend_EventManager_Event(); $event->setTarget($this); $event->setName(__FUNCTION__); $responses = $this->events->trigger($event, array($this, 'returnOnEvent')); $this->assertTrue($responses->stopped()); }
/** * @param \Zend_EventManager_Event $e * @return AbstractElement * @throws \Exception */ private static function extractElementFromEvent(\Zend_EventManager_Event $e) { $element = $e->getParam("object"); if (empty($element)) { $element = $e->getParam("asset"); } if (empty($element)) { $element = $e->getParam("document"); } if (empty($element)) { throw new \Exception("No element found in event"); } return $element; }
/** * @param \Zend_EventManager_Event $e */ public function preDispatch(\Zend_EventManager_Event $e) { $e->getTarget()->registerPlugin(new Controller\Plugin\Frontend()); }
public function initController(\Zend_EventManager_Event $e) { $controller = $e->getTarget(); $this->container->injectOn($controller); }