# Get Started
# Overview
This documentation provides an in-depth explanation of the features and concepts within the MAYS Framework. If you're interested in learning about data management, discovering the capabilities of MAYS object life cycle, or exploring specific modules, please navigate to the SDK section. To gain insights into the metadata structure or configuration, we recommend starting with the Schema and Fields sections. If you are utilizing the API within a web application, the API section will be of particular relevance.
MAYS the Force be with you! 🧙♂
# Pre-requisites
- PHP 8.2 or higher
- Mysql 5.7.8 or higher / Postgresql
- Write permission under the following folders: contents, logs and debug
# Create project
Easily create a new project with php mays-cli.php create:project command.
It sets up backend, frontend, and template files, generates environment configs, and imports the default database structure — all in one step.
See more CLI commands and full details on the MAYS CLI Commands Page.
# The init.ini
This file is located at the root and is used to configure several settings of the platform, we can also have several init files for different domains on the same installation (for instance same base code but used on different domains with different databases or UI, it also makes it easy for multi-tenant projects). The specific init file for each domain must be domain.pt.init.pt for the domain.pt case.
The following sections are present, for more information consult the init.ini default example.
- db
api: mysql | pdo | pdo_postgres
- jtw: information about the JSON Web Token
- langs:
list: Definition of the languages included in a multi-language project. Please list the values separated by commas.ui: The default language for the framework can be overridden by the language of the active user making the requests.
- info: Visuals or texts that is used by the Mays UI.
- status: Manage things like maintenance, production or debug modes.
- filesystem: Setup for uploading files, including S3 specific settings in case of projects that use S3 for contents.
- keys: Used to store public keys. Do not use for sensitive or private keys. Use the .env instead.
- settings: Global settings section to manage several modules, including audit, image optimization settings, logs etc.
- bruteforce: Security settings agains brute force attacks.
- model
- modules: Easily turn off some modules.
- specific A generic bucket to store any custom settings for a given project.
# .env
You can use the env.example file to create your own, or simply execute the "init" utility script by running the command 'php mays-cli.php init'.
This file contains the properties for the database connection as well as any other sensitive keys and secrets. For security reasons, this file should not be added to any repository.