Getting started
Routing and controllers
Command line
Databases (SQL)
Databases (NoSQL)
Security
Packages
Learn more
- Array helper
 - Caching
 - Collections
 - Command, event and query buses
 - Date and time
 - File system
 - HTML helper
 - Humanizer
 - Image manipulation
 - Internationalization
 - Logging
 - Number helper
 - Pagination
 - Rate limiter
 - Retry helper
 - Sessions
 - String helper
 - URL builder
 - UUID helper
 - Validation
 - Views
 
Official packages
Installation
Requirements
- PHP 8.4.1 or higher *
 - 
ext-json - 
ext-mbstring 
If you plan to use the database library then you'll also need to install ext-pdo.
It it also suggested to have the posix and pcntl extensions enabled if you want to take advantage of all the features offered by the reactor command line tool.
* Tested on PHP 8.4
Setup
Installing Mako is easy and can be with done in a few simple steps thanks to composer.
First you'll have to create a new project:
composer create-project mako/app <project name>
Next you'll have to make the app/storage/* directories writable (command my vary depending on your system):
chown www-data:www-data -R app/storage
Note that only the most essential services are enabled by default. Enable the ones that you need by uncommenting them in the
app/config/application.phpconfiguration file.
Get started
Mako includes a simple development server which can be started with the following command:
php app/reactor server
Open http://localhost:8000 in your browser of choice and you're ready to start coding!
The included development server is great when getting started and for quick prototyping but your should probably use a VM or Docker setup that closely resembles your production environment for advanced projects.
Updating
Mako and all your other dependencies can easily be updated when a new patch release is made available using the following command:
composer update
If you want to bump the Mako version (e.g. from 10.0.* to 10.1.*) then you'll have to update your composer.json file before running the update command.
Some releases might require some minor code changes. These will be documented in the upgrade guides.