PFZ.nl - PHP Community: [SF] yml inheritance - Frameworks - Forum - PFZ.nl - PHP Community

Je kunt niet antwoorden op dit topic
#1 24-01-2012 22:31
  • Taco V
  • Groep: Moderators
  • Posts: 798
  • Actief sinds: 12-08-2008
Ik zit met een klein maar vervelend probleem. Het vervelende is dat ik vrij zeker weet dat het ooit wel heeft gewerkt :)

Ik heb een third party bundle in Symfony2 (FOSUserBundle) en daar wordt een routing-file meegeleverd:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!-- FOSUserBundle/Resources/config/routing/registration.xml -->
<?xml version="1.0" encoding="UTF-8" ?>

<routes xmlns="http://symfony.com/schema/routing"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

    <route id="fos_user_registration_register" pattern="/">
        <default key="_controller">FOSUserBundle:Registration:register</default>
    </route>

    <route id="fos_user_registration_check_email" pattern="/check-email">
        <default key="_controller">FOSUserBundle:Registration:checkEmail</default>
        <requirement key="_method">GET</requirement>
    </route>

    <route id="fos_user_registration_confirm" pattern="/confirm/{token}">
        <default key="_controller">FOSUserBundle:Registration:confirm</default>
        <requirement key="_method">GET</requirement>
    </route>

    <route id="fos_user_registration_confirmed" pattern="/confirmed">
        <default key="_controller">FOSUserBundle:Registration:confirmed</default>
        <requirement key="_method">GET</requirement>
    </route>

</routes>


Nu vind ik die routes prima, maar ik wil ze graag mijn eigen (Nederlandse) url's kunnen geven. Wat ik heb geprobeerd is dit:
1
2
3
4
5
6
7
8
9
10
# MijnBundle/Resources/config/routing/routing.yml

# Externe routing inladen
fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /register

# Pattern overschrijven voor een route
fos_user_registration_register:
    pattern: /meedoen


Mijn idee was dat de andere keys van de route "fos_user_registration_register" zouden blijven bestaan (Defaults met _controller in dit geval) en dat alleen de pattern werd overschreven. Nu gebeurt dat eerste wel netjes, maar Defaults is leeg:
1
2
3
4
5
6
7
8
9
10
11
$ app/console router:debug fos_user_registration_register
[router] Route "fos_user_registration_register"
Name         fos_user_registration_register
Pattern      /meedoen
Class        Symfony\Component\Routing\CompiledRoute
Defaults     
Requirements 
Options      compiler_class: Symfony\Component\Routing\RouteCompiler
Regex        #^
                 /meedoen
             $#xs


Als ik ernaar browse krijg ik niet de route-bestaat-niet-melding ("No route found for "GET /meedoen"") maar duidelijk een andere ("Unable to find the controller for path "/meedoen". Maybe you forgot to add the matching route in your routing configuration?")

De andere routes (/register/check-email, /register/confirm/eentokenABC123, etc) werken nog prima.

Weet iemand hier een nette oplossing voor?

#2 25-01-2012 08:02
http://symfony.com/d...uting-resources

Het zou moeten werken, maar kennelijk overschrijf je een volledige route en neem je geen eerder gedefinieerde waardes mee. Dit zou kunnen komen door de prefix.

Quote

Het vervelende is dat ik vrij zeker weet dat het ooit wel heeft gewerkt
En wanneer was dat? Symfony 1.4??
"fouten verifieer je niet met een "; DROP DATABASE" commando. " Arnoud Engelfriet (Security.nl)

#3 25-01-2012 09:31
  • Taco V
  • Groep: Moderators
  • Posts: 798
  • Actief sinds: 12-08-2008
Ja, het probleem zit inderdaad in het overschrijven van die hele key, in plaats van alleen de gespecificeerde subkeys. Maar hoe los ik dat op? Ik wil niet alle keys opnieuw instellen, want dan gaat het sneaky fout als de FOS-code wordt gewijzigd.

Bekijk Post Op 25-01-2012 09:02 schreef Sebastiaan Stok:

En wanneer was dat? Symfony 1.4??
Nee, paar weken terug, ook Symfony2. Maar pin me er niet op vast, grote kans ik ofwel niet goed heb gecheckt dat het werkte ofwel iets andere instellingen had.
Elke dag leer ik weer wat anders en wil ik het weer anders aanpakken. Puntje bij paaltje heb ik na weken werken nog geeneens in inlogsysteem naar mijn smaak. Maar dat is een andere discussie :)

EDIT: Ik zal vanavond eens proberen de prefix weg te laten, maar ik vermoed daar weinig succes...

#4 25-01-2012 21:48
  • Taco V
  • Groep: Moderators
  • Posts: 798
  • Actief sinds: 12-08-2008
Helaas, het scheelt inderdaad niets als ik de prefix weglaat.

Ik kan ook nergens in de documentatie iets vinden over hoe dit zou moeten werken. Eigenlijk komt het heel simpel hier op neer:
1
2
3
4
5
6
foo:
    bar: 1
    baz: 2
    qux: 3
foo:
    baz: 4

wordt nu effectief
1
2
foo:
    baz: 4

terwijl ik zou willen
1
2
3
4
foo:
    bar: 1
    baz: 4
    qux: 3


Ik probeer zoektermen te bedenken (inheritance?) die via Google het ei van Columbus opleveren, maar helaas...


Inloggen wachtwoord vergeten? Aanmelden