Mayd 2

Mayd is a framework to build content platforms. Please refer to the specialized documentation of each bundle.

Quick Start:

These are most commonly used topics around Mayd, so you can jump directly to them:

Overview

Overview

The overview talks about global concepts, that affect the whole of Mayd.

Frontend

Things, related to the actual frontend (JS, HTML + CSS), as well as integrations for your project code.

Backend

If you build custom pages and views in the Mayd backend, you probably should read this.

Pages

Everything related to pages, page trees, websites, and so on is here.

Migration

Migrating from Mayd v1 to v2? Read this!

Internals

Everything related to building Mayd itself is here, including integration code for the Mayd bundles.

Config

In a regular Symfony system, the config is both loaded from

  • config/*.yaml
  • config/{env}/*.yaml

In Mayd config is also loaded from

  • config/{hostingTier}/*.yaml

Prefixes

In a regular symfony project, there are several areas where we use keys (like translation keys, route names, CRUD keys, etc..)

  • Don’t use a common prefix, try to use keys that are as concise as possible.
  • Route import names should start with _import.*
  • Never use a mayd. prefix.

Role System

There is a set of fixed roles, that are global and separate specific users:

ROLE_MAYD_USER:

This is the role for the normal (customer) admin, who can administer the content.

ROLE_MAYD_ADMIN:

This is the role for employees of Becklyn, that can additionally do certain dangerous tasks, like changing the locale and application settings.

This tasks are dangerous, because they can break the page. For example: changing the code of a locale will invalidate all of the existing URLs.

Users with this role are also able to impersonate other users.

ROLE_SUPER_ADMIN:

Super admins have all permissions. The difference to ROLE_MAYD_ADMIN are only of certain highly technical settings (like YAML-based config for certain entities) or having access to maintenance pages.

This role is restricted to the Technical Leads of Becklyn Studios.

For usage in the code, the mayd/core bundle provides a set of constants that give you these exact roles:

use Mayd\Core\Permissions\CorePermissions;

CorePermissions::ROLE_MAYD_USER
CorePermissions::ROLE_MAYD_ADMIN
CorePermissions::ROLE_SUPER_ADMIN