/admin
, the Administrations components implement a number of cross-cutting concerns. The most important are:platform/src/Administration
. Therefore, the SPAs main entry point is: ./Resources/app/administration
. Everything else inside platform/src/Administration
can be seen as wrapped configuration around the SPA. This bundles main concern is to set up the initial Routing (/admin
) & the Administrations main template file, which initializes the SPA (./Resources/views/administration/index.html.twig
) and to provide translation handling.src
directory of the SPA below is structured along the three different use cases the Administration faces: Provide common functionality, an application skeleton and modules.app
: Contains the application basis for the Administration. Generally you will find framework dependantcore
: Contains the binding to the Admin API and services.module
: UI and state management of specific view pages, structured along the Core modules. Head tocomponent
, adjacent to web components.component
is the combination of styling, markup and logic. What a component does will not surprise you, if you already are familiar with the MVC pattern. The role of the model and controller collapses into a single class though. The components Twig.js template is generally being rendered by a JavaScript (index.js
) file and includes styling from a SCSS file. A template file also notifies the JavaScript, which then reacts to specific (user) interactions. Furthermore, components can be and often are nested. Our Component Library will also give you an overview about our default components.page
represents the entry point or the page that needs to be rendered and encapsulates views. A view
is a subordinate part of the page that encapsulates components. A component
can itself encapsulate different components, from this level on there is no distinction in the directory structure made.page
is mandatory in each module. Though views and components can be present in the module a vast default component library is present to help with default cases.Component.extend()
a new component is created. With Component.override()
, on the other hand, the previous behavior of the component is simply overwritten.acl
included. In this directory one will find specific mappings of privileges (permissions for roles; additional permissions) for the default roles: viewer
, editor
, creator
, deleter
. A more guided article about ACL can be found here: