The modern PHP approach to creating modular applications

How to build web apps in terms of reusable modules and without any additional custom code.

TL;DR

What is app modularity?

Components and Bundles

Components

Bundles

The Auto-X Toolchain

Creating the app scaffold

$ composer create-project symfony/skeleton my-app
$ cd my-app
<?php
// src/Controller/Reports.php
namespace App\Controller;// ...class Reports
{
/**
* @Route("/reports", name="reports")
*/
function makeReport(Request $req, ReportMaker $maker): Response
{
// ...
}
}
# config/routes/report-maker.yamlreport-maker:
resource: '@ReportMaker'
prefix: '/api'
symfony server:start
http://localhost:8000/api/report?text=We_are_done!

Conclusions

Where do we go from here?

// Database abstraction
$ composer require doctrine/doctrine-bundle
// File system abstraction (including cloud storage)
$ composer require league/flysystem-bundle
// API functionality
$ composer require api-platform/api-pack

CEO/CTO @Proximify. Specialized in research information systems.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store