Lucinda: Modular High Performance PHP Framework

Lucinda is an ultra high performance simple 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 benefiting:

because it is full featured and very easy to learn and extend
Site Owners
because developers will become productive immediately
End Users
because they will enjoy a very fast and reliable site
NEWS A completely new tag-based pure PHP document database functioning as a flattened graph is being created (see GIT for progress)! It is destined for smart caching and allows constant time RW operations while using files instead of RAM to store keys.
ETA: 2020-07-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 outperforms any other PHP framework, including the one most popular today. It proves to be 40 times faster than Laravel (or 9, if latter is tweaked), as seen in these ApacheBench tests comparing the two under identical scenarios:

# lucinda using factory settings aherne@aherne-System-Product-Name:~$ ab -n 100000 -c10 http://www.lucinda.local/test/json ... Requests per second: 8146.51 [#/sec] (mean) ...

# laravel using factory settings aherne@aherne-System-Product-Name:~$ ab -n 100000 -c10 http://www.laravel.local/test/json ... Requests per second: 200.85 [#/sec] (mean) ... # laravel tweaked to deactivate sessions in app/Http/Kernel.php aherne@aherne-System-Product-Name:~$ ab -n 100000 -c10 http://www.laravel.local/test/json ... Requests per second: 901.73 [#/sec] (mean) ...

For more info about results and how these tests were conducted, 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.