Calling Developers!
We are reenergizing our code contribution process! Learn More

What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hey guys, can you answer that how to decode Zed Route or where routing defined in Zed in Spryker

Options
U04TV8QP04C
U04TV8QP04C Posts: 38 🧑🏻‍🚀 - Cadet

Hey guys, can you answer that how to decode Zed Route or where routing defined in Zed in Spryker

Comments

  • Alberto Reyer
    Alberto Reyer Lead Spryker Solution Architect / Technical Director Posts: 690 🪐 - Explorer
    edited March 2023
    Options

    The Zed routing works by a schema dating back to Zend Framework (now called Laminas) which is also where the name Zed came from.
    It's basically <Module>/<Controller>/<Action>. For example /sales/detail will be routed to the Sales module, using the DetailController.
    All Controllers for Zed are expected to be found at <Module>/Communication/Controller/<ControllerName>Controller.
    If no action is given, like in the example above, the indexAction will be used as default.
    The implementation can be found at https://github.com/spryker/router/blob/1.14.0/src/Spryker/Zed/Router/Communication/Resolver/ControllerResolver.php#L38 for the Zed routing.

    In addition be aware that Zed is no split into 3 different applications, backoffice, gateway and backend-api.
    The routing schema described above only applies to the backoffice.

    For the gateway Zed application the routing schema is
    /<module>/gateway/<action> which will be routed to <Module>/Communication/Controller/GatewayController::<action>Action().

    Some pitfalls you need to be aware of:

    • Controllers are always suffixed with Controller
    • Controllers are placed in <Module>/Communication/Controller
    • Actions are always suffixed with Action
    • If no Action is given the indexAction is called
    • If no Controller is given, the IndexController of the given module is used