Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
54.17% |
13 / 24 |
CRAP | |
58.00% |
29 / 50 |
| ApplicationTrait | |
0.00% |
0 / 1 |
|
54.17% |
13 / 24 |
96.68 | |
58.00% |
29 / 50 |
| addSuccess | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| addError | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| addDanger | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| addWarning | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| addInfo | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| addRequestError | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| clearMessage | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| deleteMessage | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| setLoginTargetPath | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 4 |
|||
| isAdminRequest | |
100.00% |
1 / 1 |
2 | |
100.00% |
1 / 1 |
|||
| isFrontRequest | |
100.00% |
1 / 1 |
2 | |
100.00% |
1 / 1 |
|||
| form | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| log | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| user | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| encodePassword | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| isGranted | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
||||
| trans | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| transChoice | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| render | |
100.00% |
1 / 1 |
4 | |
100.00% |
9 / 9 |
|||
| anonymous function | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| renderView | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| path | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| url | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| <?php | |
| namespace Eccube\Application; | |
| use Eccube\Event\TemplateEvent; | |
| use Monolog\Logger; | |
| use Symfony\Component\Form\FormBuilder; | |
| use Symfony\Component\HttpFoundation\Response; | |
| use Symfony\Component\HttpFoundation\StreamedResponse; | |
| use Symfony\Component\Routing\Generator\UrlGeneratorInterface; | |
| use Symfony\Component\Security\Core\User\UserInterface; | |
| /** | |
| * TODO Traitが使えるようになったら不要になる | |
| */ | |
| class ApplicationTrait extends \Silex\Application | |
| { | |
| /** | |
| * Application Shortcut Methods | |
| */ | |
| public function addSuccess($message, $namespace = 'front') | |
| { | |
| $this['session']->getFlashBag()->add('eccube.' . $namespace . '.success', $message); | |
| } | |
| public function addError($message, $namespace = 'front') | |
| { | |
| $this['session']->getFlashBag()->add('eccube.' . $namespace . '.error', $message); | |
| } | |
| public function addDanger($message, $namespace = 'front') | |
| { | |
| $this['session']->getFlashBag()->add('eccube.' . $namespace . '.danger', $message); | |
| } | |
| public function addWarning($message, $namespace = 'front') | |
| { | |
| $this['session']->getFlashBag()->add('eccube.' . $namespace . '.warning', $message); | |
| } | |
| public function addInfo($message, $namespace = 'front') | |
| { | |
| $this['session']->getFlashBag()->add('eccube.' . $namespace . '.info', $message); | |
| } | |
| public function addRequestError($message, $namespace = 'front') | |
| { | |
| $this['session']->getFlashBag()->set('eccube.' . $namespace . '.request.error', $message); | |
| } | |
| public function clearMessage() | |
| { | |
| $this['session']->getFlashBag()->clear(); | |
| } | |
| public function deleteMessage() | |
| { | |
| $this->clearMessage(); | |
| $this->addWarning('admin.delete.warning', 'admin'); | |
| } | |
| public function setLoginTargetPath($targetPath, $namespace = null) | |
| { | |
| if (is_null($namespace)) { | |
| $this['session']->getFlashBag()->set('eccube.login.target.path', $targetPath); | |
| } else { | |
| $this['session']->getFlashBag()->set('eccube.' . $namespace . '.login.target.path', $targetPath); | |
| } | |
| } | |
| public function isAdminRequest() | |
| { | |
| return isset($this['admin']) ? $this['admin'] : null; | |
| } | |
| public function isFrontRequest() | |
| { | |
| return isset($this['front']) ? $this['front'] : null; | |
| } | |
| /* | |
| * 注意!以下コードはSilexのコードのコピーなので触らないコト | |
| * | |
| * 以下のコードの著作権について | |
| * | |
| * (c) Fabien Potencier <fabien@symfony.com> | |
| * | |
| * For the full copyright and license information, please view the silex | |
| * LICENSE file that was distributed with this source code. | |
| */ | |
| /** FormTrait */ | |
| /** | |
| * Creates and returns a form builder instance | |
| * | |
| * @param mixed $data The initial data for the form | |
| * @param array $options Options for the form | |
| * | |
| * @return FormBuilder | |
| */ | |
| public function form($data = null, array $options = array()) | |
| { | |
| return $this['form.factory']->createBuilder('form', $data, $options); | |
| } | |
| /** MonologTrait */ | |
| /** | |
| * Adds a log record. | |
| * | |
| * @param string $message The log message | |
| * @param array $context The log context | |
| * @param int $level The logging level | |
| * | |
| * @return bool Whether the record has been processed | |
| */ | |
| public function log($message, array $context = array(), $level = Logger::INFO) | |
| { | |
| return $this['monolog']->addRecord($level, $message, $context); | |
| } | |
| /** SecurityTrait */ | |
| /** | |
| * Gets a user from the Security context. | |
| * | |
| * @return mixed | |
| * | |
| * @see TokenInterface::getUser() | |
| * | |
| */ | |
| public function user() | |
| { | |
| return $this['user']; | |
| } | |
| /** | |
| * Encodes the raw password. | |
| * | |
| * @param UserInterface $user A UserInterface instance | |
| * @param string $password The password to encode | |
| * | |
| * @return string The encoded password | |
| * | |
| * @throws \RuntimeException when no password encoder could be found for the user | |
| */ | |
| public function encodePassword(UserInterface $user, $password) | |
| { | |
| return $this['security.encoder_factory']->getEncoder($user)->encodePassword($password, $user->getSalt()); | |
| } | |
| /** | |
| * Checks if the attributes are granted against the current authentication token and optionally supplied object. | |
| * | |
| * @param mixed $attributes | |
| * @param mixed $object | |
| * | |
| * @return bool | |
| * | |
| * @throws AuthenticationCredentialsNotFoundException when the token storage has no authentication token. | |
| */ | |
| public function isGranted($attributes, $object = null) | |
| { | |
| return $this['security.authorization_checker']->isGranted($attributes, $object); | |
| } | |
| /** SwiftmailerTrait */ | |
| /** | |
| * Sends an email. | |
| * | |
| * @param \Swift_Message $message A \Swift_Message instance | |
| * @param array $failedRecipients An array of failures by-reference | |
| * | |
| * @return int The number of sent messages | |
| */ | |
| public function mail(\Swift_Message $message, &$failedRecipients = null) | |
| { | |
| return $this['mailer']->send($message, $failedRecipients); | |
| } | |
| /** TranslationTrait */ | |
| /** | |
| * Translates the given message. | |
| * | |
| * @param string $id The message id | |
| * @param array $parameters An array of parameters for the message | |
| * @param string $domain The domain for the message | |
| * @param string $locale The locale | |
| * | |
| * @return string The translated string | |
| */ | |
| public function trans($id, array $parameters = array(), $domain = 'messages', $locale = null) | |
| { | |
| return $this['translator']->trans($id, $parameters, $domain, $locale); | |
| } | |
| /** | |
| * Translates the given choice message by choosing a translation according to a number. | |
| * | |
| * @param string $id The message id | |
| * @param int $number The number to use to find the indice of the message | |
| * @param array $parameters An array of parameters for the message | |
| * @param string $domain The domain for the message | |
| * @param string $locale The locale | |
| * | |
| * @return string The translated string | |
| */ | |
| public function transChoice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null) | |
| { | |
| return $this['translator']->transChoice($id, $number, $parameters, $domain, $locale); | |
| } | |
| /** TwigTrait */ | |
| /** | |
| * Renders a view and returns a Response. | |
| * | |
| * To stream a view, pass an instance of StreamedResponse as a third argument. | |
| * | |
| * @param string $view The view name | |
| * @param array $parameters An array of parameters to pass to the view | |
| * @param Response $response A Response instance | |
| * | |
| * @return Response A Response instance | |
| */ | |
| public function render($view, array $parameters = array(), Response $response = null) | |
| { | |
| $twig = $this['twig']; | |
| // twigファイルのソースコードを読み込み, 文字列化. | |
| $source = $twig->getLoader()->getSource($view); | |
| // イベントの実行. | |
| // プラグインにはテンプレートファイル名、文字列化されたtwigファイル、パラメータを渡す | |
| $event = new TemplateEvent($view, $source, $parameters, $response); | |
| $eventName = $view; | |
| if ($this->isAdminRequest()) { | |
| // 管理画面の場合、event名に「Admin/」を付ける | |
| $eventName = 'Admin/' . $view; | |
| } | |
| $this['monolog']->debug('Template Event Name : ' . $eventName); | |
| $this['eccube.event.dispatcher']->dispatch($eventName, $event); | |
| if ($response instanceof StreamedResponse) { | |
| $response->setCallback(function () use ($twig, $view, $parameters) { | |
| $twig->display($view, $parameters); | |
| }); | |
| } else { | |
| if (null === $response) { | |
| $response = new Response(); | |
| } | |
| // プラグインで変更された文字列から, テンプレートオブジェクトを生成 | |
| $template = $twig->createTemplate($event->getSource()); | |
| // レンダリング実行. | |
| $content = $template->render($event->getParameters()); | |
| $response->setContent($content); | |
| } | |
| return $response; | |
| } | |
| /** | |
| * Renders a view. | |
| * | |
| * @param string $view The view name | |
| * @param array $parameters An array of parameters to pass to the view | |
| * | |
| * @return string The rendered view | |
| */ | |
| public function renderView($view, array $parameters = array()) | |
| { | |
| return $this['twig']->render($view, $parameters); | |
| } | |
| /** UrlGeneratorTrait */ | |
| /** | |
| * Generates a path from the given parameters. | |
| * | |
| * @param string $route The name of the route | |
| * @param mixed $parameters An array of parameters | |
| * | |
| * @return string The generated path | |
| */ | |
| public function path($route, $parameters = array()) | |
| { | |
| return $this['url_generator']->generate($route, $parameters, UrlGeneratorInterface::ABSOLUTE_PATH); | |
| } | |
| /** | |
| * Generates an absolute URL from the given parameters. | |
| * | |
| * @param string $route The name of the route | |
| * @param mixed $parameters An array of parameters | |
| * | |
| * @return string The generated URL | |
| */ | |
| public function url($route, $parameters = array()) | |
| { | |
| return $this['url_generator']->generate($route, $parameters, UrlGeneratorInterface::ABSOLUTE_URL); | |
| } | |
| } |