Lucinda: Modular Ultra-High Performance PHP Framework

Lucinda is an ultra high performance PHP framework designed to build blazing fast and easily maintainable web applications. It combines harmony with modular design to achieve a scalable and efficient end product that is beautiful to work with and simple to learn.

OLD VERSIONS For documentation of older framework versions, go here for version 2.0 and here for version 1.0!
NEWS Shared logic of STDOUT & STDERR MVC APIs has been set in a new Abstract MVC API that contains all parts of MVC logic working regardless of STDIN type (url request, exception). Latter is already done but source MVC APIs and framework itself need to be changed too!
ETA: 2021-05-01

How does it work?

To enforce modularity, framework is just a thin XML-based integration layer of completely independent APIs, each dedicated to an aspect of a web application logic and built in a way that makes them easy to be assembled or disassembled on demand:

To learn more how they are all put together, check Documentation page. All code inside is 100% unit test covered, PSR-4 autoload compliant and PHP 7.1+ compatible, requiring only SimpleXML extension!

How fast is it?

Thanks to its high-performance design, Lucinda outcompetes any other PHP framework tested. It proves to be 50x faster than Laravel, 7x faster than CodeIgniter and over 4x faster than Symfony when raw MVC engine speed is measured in ApacheBench tests:

To learn more about raw results and how this benchmark was conducted so you're able to reproduce them on your own machine, please review Benchmarks page.

How easy is it?

To illustrate how easy this PHP framework is, let us imagine you want to register a route called /hello-world, to be handled by controller HelloWorld that sends variable test with value OK to view helloWorld.html. This requires no more than three steps:

  1. open stdout.xml and register a route:
    <route url="hello-world" controller="HelloWorld" view="helloWorld"/>
  2. in application/controllers folder, create a file called HelloWorld.php with following code:
    class HelloWorld extends { public function run(): void { $this->response->view()["test"] = "OK"; } }
  3. in application/views folder, create a file called helloWorld.html with following code:
    Result is ${data.test}

This way when route /hello-world is called, framework will then answer with: Result is OK. To learn more how lightweight and user friendly this framework is, check Tutorials page.

How to install it?

To install this framework and build your project on its foundation, go to DOCUMENT_ROOT (folder where the website files for a domain name are stored, for example /var/www/html) and run this command from console:

composer create-project lucinda/framework SITE_NAME

After above completes follow Installation guide to create a DOMAIN_NAME pointing to DOCUMENT_ROOT/SITE_NAME then load former in browser to see a welcome page that guides you what to do next.