GalleryAdminController   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 57
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A render() 0 7 1
A listAction() 0 23 2
A setFormTheme() 0 6 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Sonata Project package.
7
 *
8
 * (c) Thomas Rabaix <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Sonata\MediaBundle\Controller;
15
16
use Sonata\AdminBundle\Controller\CRUDController as Controller;
17
use Symfony\Component\Form\FormRenderer;
18
use Symfony\Component\Form\FormView;
19
use Symfony\Component\HttpFoundation\Request;
20
use Symfony\Component\HttpFoundation\Response;
21
22
/**
23
 * @final since sonata-project/media-bundle 3.21.0
24
 */
25
class GalleryAdminController extends Controller
26
{
27
    /**
28
     * @param string   $view
29
     * @param Response $response
30
     *
31
     * @return Response
32
     */
33
    public function render($view, array $parameters = [], ?Response $response = null)
34
    {
35
        $parameters['media_pool'] = $this->get('sonata.media.pool');
36
        $parameters['persistent_parameters'] = $this->admin->getPersistentParameters();
37
38
        return parent::renderWithExtraParams($view, $parameters, $response);
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (renderWithExtraParams() instead of render()). Are you sure this is correct? If so, you might want to change this to $this->renderWithExtraParams().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
39
    }
40
41
    /**
42
     * return the Response object associated to the list action.
43
     *
44
     * @param Request $request
45
     *
46
     * @return Response
47
     */
48
    public function listAction(?Request $request = null)
49
    {
50
        $this->admin->checkAccess('list');
51
52
        if ($listMode = $request->get('_list_mode')) {
0 ignored issues
show
Bug introduced by
It seems like $request is not always an object, but can also be of type null. Maybe add an additional type check?

If a variable is not always an object, we recommend to add an additional type check to ensure your method call is safe:

function someFunction(A $objectMaybe = null)
{
    if ($objectMaybe instanceof A) {
        $objectMaybe->doSomething();
    }
}
Loading history...
53
            $this->admin->setListMode($listMode);
54
        }
55
56
        $datagrid = $this->admin->getDatagrid();
57
        $datagrid->setValue('context', null, $this->admin->getPersistentParameter('context'));
0 ignored issues
show
Bug introduced by
The method getPersistentParameter() does not exist on Sonata\AdminBundle\Admin\AdminInterface. Did you maybe mean getPersistentParameters()?

This check marks calls to methods that do not seem to exist on an object.

This is most likely the result of a method being renamed without all references to it being renamed likewise.

Loading history...
58
59
        $formView = $datagrid->getForm()->createView();
60
61
        // set the theme for the current Admin Form
62
        $this->setFormTheme($formView, $this->admin->getFilterTheme());
63
64
        return $this->render($this->admin->getTemplate('list'), [
0 ignored issues
show
Deprecated Code introduced by
The method Sonata\AdminBundle\Admin...nterface::getTemplate() has been deprecated with message: since sonata-project/admin-bundle 3.35. To be removed in 4.0. Use TemplateRegistry services instead

This method has been deprecated. The supplier of the class has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.

Loading history...
65
            'action' => 'list',
66
            'form' => $formView,
67
            'datagrid' => $datagrid,
68
            'csrf_token' => $this->getCsrfToken('sonata.batch'),
69
        ]);
70
    }
71
72
    /**
73
     * Sets the admin form theme to form view. Used for compatibility between Symfony versions.
74
     */
75
    private function setFormTheme(FormView $formView, array $theme)
0 ignored issues
show
Bug introduced by
Consider using a different method name as you override a private method of the parent class.

Overwriting private methods is generally fine as long as you also use private visibility. It might still be preferable for understandability to use a different method name.

Loading history...
76
    {
77
        $twig = $this->get('twig');
78
79
        $twig->getRuntime(FormRenderer::class)->setTheme($formView, $theme);
80
    }
81
}
82