Skip to content

Commit

Permalink
[cleanup Controller] get services by constructor
Browse files Browse the repository at this point in the history
A step to symfony4 #60
SimonHeimberg committed Aug 9, 2018

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 1786c09 commit b830f9f
Showing 3 changed files with 51 additions and 15 deletions.
18 changes: 12 additions & 6 deletions src/Controller/ColumnSelectorController.php
Original file line number Diff line number Diff line change
@@ -2,19 +2,25 @@

namespace CubeTools\CubeCommonBundle\Controller;

use CubeTools\CubeCommonBundle\UserSettings\UserSettingsStorage;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use CubeTools\CubeCommonBundle\DataHandling\DataConversion;

class ColumnSelectorController extends Controller
{
private static $colsButtons = array();
private $ccuSettings;

public function setUserSettingsStorage(UserSettingsStorage $ccuSettings = null)
{
$this->ccuSettings = $ccuSettings;
}

/**
* Renders the snippet to include for a ColumnSelector button.
@@ -78,10 +84,10 @@ public function saveSettingsAction(Request $request)

protected function getColsSettings($saveId)
{
try {
return $this->get('cube_common.user_settings')->getUserSetting('column', $saveId);
} catch (ServiceNotFoundException $se) {
$msg = 'ERROR: missing service; '.$se->getMessage();
if ($this->ccuSettings) {
return $this->ccuSettings->getUserSetting('column', $saveId);
} else {
$msg = 'ERROR: missing service '.UserSettingsStorage::class;
if (function_exists('dump')) {
$log = 'dump';
$log($msg);
@@ -96,7 +102,7 @@ protected function saveColsSettings($saveId, array $settings)
DataConversion::dataTextToDataInArray($settings);

// error is handled by ajax caller
return $this->get('cube_common.user_settings')->setUserSetting('column', $saveId, $settings);
return $this->ccuSettings->setUserSetting('column', $saveId, $settings);
}

/**
24 changes: 19 additions & 5 deletions src/Controller/DevelopmentSupportController.php
Original file line number Diff line number Diff line change
@@ -2,11 +2,14 @@

namespace CubeTools\CubeCommonBundle\Controller;

use CubeTools\CubeCommonBundle\Project\ProjectVersionGit;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Debug\Exception\FlattenException;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

@@ -17,6 +20,17 @@
*/
class DevelopmentSupportController extends Controller
{
private $security;
private $projVer;
private $requestStack;

public function __construct(TokenStorageInterface $security, ProjectVersionGit $projVer, RequestStack $requestStack)
{
$this->security = $security;
$this->projVer = $projVer;
$this->requestStack = $requestStack;
}

/**
* Simplify reporting of a bug by prefilling the form.
*
@@ -25,7 +39,7 @@ class DevelopmentSupportController extends Controller
*/
public function reportBugAction(Request $request)
{
$projVer = $this->get('cube_common.project_version');
$projVer = $this->projVer;
$githubProjectUrl = $projVer->getGitRepoUrl();
$version = $projVer->getVersionString();
$verHash = $projVer->getGitHash();
@@ -56,14 +70,14 @@ public function reportBugAction(Request $request)
*/
public function fullBugLinkAction(Request $request, $exception = null)
{
$projVer = $this->get('cube_common.project_version');
$projVer = $this->projVer;
$githubProjectUrl = $projVer->getGitRepoUrl();
$version = $projVer->getVersionString();
$verHash = $projVer->getGitHash();

$reqInfo = $this->requestHandling($request);
if ('/_fragment' === $request->getPathInfo()) {
$request = $this->get('request_stack')->getMasterRequest();
$request = $this->requestStack->getMasterRequest();
}
$reqInfo['reallyRelated'] = $request->getHttpHost().$request->getRequestUri();

@@ -163,12 +177,12 @@ private function generateBugLink($githubProjectUrl, $msgBody, $module = null, $t
*/
private function getRoles()
{
if ($this->get('security.token_storage')->getToken()) {
if ($this->security->getToken()) {
return array_map(
function ($roleObj) {
return $roleObj->getRole();
},
$this->get('security.token_storage')->getToken()->getRoles()
$this->security->getToken()->getRoles()
);
} else {
return array();
24 changes: 20 additions & 4 deletions src/Resources/config/services.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,35 @@
#parameters:

services:
cube_common.project_version:
CubeTools\CubeCommonBundle\Project\ProjectVersionGit:
class: CubeTools\CubeCommonBundle\Project\ProjectVersionGit
arguments:
- '%kernel.root_dir%'
- '%kernel.cache_dir%'
CubeTools\CubeCommonBundle\Project\ProjectVersionGit: '@cube_common.project_version'
cube_common.user_settings:
cube_common.project_version: '@CubeTools\CubeCommonBundle\Project\ProjectVersionGit'

CubeTools\CubeCommonBundle\UserSettings\UserSettingsStorage:
class: CubeTools\CubeCommonBundle\UserSettings\UserSettingsStorage
arguments:
- "@doctrine"
- "@security.token_storage"
- "@event_dispatcher"
CubeTools\CubeCommonBundle\UserSettings\UserSettingsStorage: '@cube_common.user_settings'
cube_common.user_settings: '@CubeTools\CubeCommonBundle\UserSettings\UserSettingsStorage'

CubeTools\CubeCommonBundle\Controller\DevelopmentSupportController:
class: CubeTools\CubeCommonBundle\Controller\DevelopmentSupportController
public: true
arguments:
- '@Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface'
- '@CubeTools\CubeCommonBundle\Project\ProjectVersionGit'
- '@Symfony\Component\HttpFoundation\RequestStack'

CubeTools\CubeCommonBundle\Controller\ColumnSelectorController:
class: CubeTools\CubeCommonBundle\Controller\ColumnSelectorController
public: true
calls:
- [ setUserSettingsStorage, ['@?CubeTools\CubeCommonBundle\UserSettings\UserSettingsStorage'] ]

cube_common.filtering:
class: CubeTools\CubeCommonBundle\Filter\FilterService
arguments:

0 comments on commit b830f9f

Please sign in to comment.