Skip to content
GitLab
Explorer
Connexion
S'inscrire
Navigation principale
Rechercher ou aller à…
Projet
S
stats-facil
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Extraits de code
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de paquets
Registre de conteneur
Registre de modèles
Opération
Environnements
Modules Terraform
Surveillance
Incidents
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
facil
stats-facil
Validations
c9996dbe
Valider
c9996dbe
rédigé
10 years ago
par
Matthieu Napoli
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
Code simplification
parent
4b7c3029
Aucune branche associée trouvée
Branches contenant la validation
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
1
Masquer les modifications d'espaces
En ligne
Côte à côte
Affichage de
1 fichier modifié
core/Http/ControllerResolver.php
+43
-32
43 ajouts, 32 suppressions
core/Http/ControllerResolver.php
avec
43 ajouts
et
32 suppressions
core/Http/ControllerResolver.php
+
43
−
32
Voir le fichier @
c9996dbe
...
...
@@ -41,46 +41,36 @@ class ControllerResolver
*/
public
function
getController
(
$module
,
$action
,
array
&
$parameters
)
{
// Controller action
$controllerClass
=
$this
->
getControllerClass
(
$module
);
if
(
class_exists
(
$controllerClass
))
{
$controller
=
$this
->
createPluginController
(
$controllerClass
,
$action
);
if
(
$controller
)
{
return
$controller
;
}
$controller
=
$this
->
createPluginController
(
$module
,
$action
);
if
(
$controller
)
{
return
$controller
;
}
// Widget action
/** @var Widgets|null $widget */
$widget
=
Widgets
::
factory
(
$module
,
$action
);
if
(
$widget
)
{
return
$this
->
createWidgetController
(
$widget
,
$action
,
$parameters
);
$controller
=
$this
->
createWidgetController
(
$module
,
$action
,
$parameters
);
if
(
$controller
)
{
return
$controller
;
}
// Report action
$report
=
Report
::
factory
(
$module
,
$action
);
if
(
$report
)
{
return
$this
->
createReportController
(
$report
,
$parameters
);
$controller
=
$this
->
createReportController
(
$module
,
$action
,
$parameters
);
if
(
$controller
)
{
return
$controller
;
}
// Report menu action
if
(
$this
->
isReportMenuAction
(
$action
))
{
$controller
=
$this
->
createReportMenuController
(
$module
,
$action
,
$parameters
);
if
(
$controller
)
{
return
$controller
;
}
$controller
=
$this
->
createReportMenuController
(
$module
,
$action
,
$parameters
);
if
(
$controller
)
{
return
$controller
;
}
throw
new
Exception
(
sprintf
(
"Action '%s' not found in the module '%s'"
,
$action
,
$module
));
}
private
function
get
Controller
Class
(
$module
)
private
function
createPlugin
Controller
(
$module
,
$action
)
{
return
"Piwik
\\
Plugins
\\
$module
\\
Controller"
;
}
$controllerClass
=
"Piwik
\\
Plugins
\\
$module
\\
Controller"
;
if
(
!
class_exists
(
$controllerClass
))
{
return
null
;
}
private
function
createPluginController
(
$controllerClass
,
$action
)
{
/** @var $controller Controller */
$controller
=
$this
->
abstractFactory
->
make
(
$controllerClass
);
...
...
@@ -93,23 +83,39 @@ class ControllerResolver
return
array
(
$controller
,
$action
);
}
private
function
createWidgetController
(
Widgets
$widget
,
$action
,
array
&
$parameters
)
private
function
createWidgetController
(
$module
,
$action
,
array
&
$parameters
)
{
$widget
=
Widgets
::
factory
(
$module
,
$action
);
if
(
!
$widget
)
{
return
null
;
}
$parameters
[
'widget'
]
=
$widget
;
$parameters
[
'method'
]
=
$action
;
return
array
(
$this
->
abstractFactory
->
make
(
'Piwik\Plugins\
CoreHome
\
Controller
'
),
'renderWidget'
);
return
array
(
$this
->
create
CoreHomeController
(
),
'renderWidget'
);
}
private
function
createReportController
(
Report
$report
,
array
&
$parameters
)
private
function
createReportController
(
$module
,
$action
,
array
&
$parameters
)
{
$report
=
Report
::
factory
(
$module
,
$action
);
if
(
!
$report
)
{
return
null
;
}
$parameters
[
'report'
]
=
$report
;
return
array
(
$this
->
abstractFactory
->
make
(
'Piwik\Plugins\
CoreHome
\
Controller
'
),
'renderReportWidget'
);
return
array
(
$this
->
create
CoreHomeController
(
),
'renderReportWidget'
);
}
private
function
createReportMenuController
(
$module
,
$action
,
array
&
$parameters
)
{
if
(
!
$this
->
isReportMenuAction
(
$action
))
{
return
null
;
}
$action
=
lcfirst
(
substr
(
$action
,
4
));
// menuGetPageUrls => getPageUrls
$report
=
Report
::
factory
(
$module
,
$action
);
...
...
@@ -119,7 +125,7 @@ class ControllerResolver
$parameters
[
'report'
]
=
$report
;
return
array
(
$this
->
abstractFactory
->
make
(
'Piwik\Plugins\
CoreHome
\
Controller
'
),
'renderReportMenu'
);
return
array
(
$this
->
create
CoreHomeController
(
),
'renderReportMenu'
);
}
private
function
isReportMenuAction
(
$action
)
...
...
@@ -128,4 +134,9 @@ class ControllerResolver
return
!
empty
(
$action
)
&&
$startsWithMenu
;
}
private
function
createCoreHomeController
()
{
return
$this
->
abstractFactory
->
make
(
'Piwik\Plugins\CoreHome\Controller'
);
}
}
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter