Puncte:0

Ignorați o verificare a accesului, dar și transmiteți controlul înapoi controlerului principal în anumite condiții?

drapel cn

Folosesc un controler contrib care are un _acces_personalizat funcția pe care trebuie să o înlocuiesc.

Adaug un RouteSubscriber și direcționez verificarea accesului către propriul controler. Acum vreau ceva de genul:

dacă ($condiție) {
  returnează $new_access_decision;
}
returnează $original_controller->accessCheck()

astfel încât să pot continua să mă bazez pe logica inițială pentru majoritatea cazurilor și pur și simplu să suprascriu pentru un mic subset de cazuri.

Totuși, nu știu cum să injectez controlerul original în mina mea și dacă încerc să-l adaug ca parametru la serviciul RouteSubscriber, primesc

are dependență de un serviciu inexistent [controller original]

ceea ce înțeleg în sensul că controlerele nu sunt servicii.

Puncte:1
drapel cn

Injectați clasa_resolver ca serviciu obișnuit, apoi sunați

$this->class_resolver->getInstanceFromDefinition('\Drupal\example\ExampleController');
4uk4 avatar
drapel cn
În mod normal, nu aveți nevoie de două instanțe dacă există o modalitate OOP de extindere a clasei și de instanțiere doar a noii clase care poate apela metoda părinte dacă este necesar. Ai nevoie doar de două instanțe dacă au stări diferite.
drapel cn
Da, cred că un caz oarecum ciudat. Presupun că aș fi putut rezolva problema extinzând controlerul primart, dar sunt destul de diferite unul de celălalt și este un cod moștenit pe care nu sunt prea dornic să-l rescriu complet.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.