Skip to content

unix-world/Smart.Framework

Repository files navigation

Smart.Framework: a practical, modern and high performance PHP / JavaScript Framework for Web featuring Middlewares + MVC

Dual-licensed: under BSD license or GPLv3 license (at your choice)

This software project is open source.

You must choose which license to use depending on your use case: BSD license or GPLv3 license

(c) 2009 - 2022 unix-world.org / support@unix-world.org

   
Demo URL: http://demo.unix-world.org/smart-framework/
Download URL: https://github.com/unix-world/Smart.Framework
Download Modules URL: https://github.com/unix-world/Smart.Framework.Modules

 

Smart.Framework design philosophy:

  • A very pragmatic and practical aproach: A Practical Web Framework for Practical People
  • Based on a previous experience of more than 17 years of developing web projects, research and experiments using web technologies
  • Web oriented approach: to offer a solid and secure platform for building websites or web based applications for Web Clients, Desktops and Mobiles
  • Clean Code: MVC code pattern with built-in Dependency-Injection
  • Hybrid Architecture: Multi-Tier combined with Middlewares architecture to provide a flexible and responsive web service
  • Modular Architecture: support creating reusable modules (there are also many turn-key modules available in Smart.Framework.Modules)
  • Full Decoupled Libraries: the framework core is using independent (decoupled) libraries (no 3rd party dependencies)
  • NameSpace Separation in modules for: Models, Views, Controllers and Libraries
  • Easy to integrate with 3rd party (vendor) libraries
  • Native Cloud Server Services (built-in), as module for: WebDAV Server, CalDAV Server, CardDAV Server
  • Native Cloud Client Provider (built-in), as library for HTTP/HTTPS access which supports the full range of HTTP(S) Methods / Requests: GET, POST, PUT, DELETE, ...
  • Native Router based on smart URL Links: /?page=my-module.sample that can be used as /?/page/my-module.sample or /?/page/sample if (my-module is default bundle)
  • Integrates with Apache Rewrite to use SEO friendly links like /sample.html instead of traditional link /?page=my-module.sample or smart link /?/page/my-module.sample/

Easy develop your web projects with Smart.Framework

The primary goal of Smart.Framework is to provide a very practical, fast and secure web framework. Following this philosophy Smart.Framework provides an optimal balance between acceptable coding skills and performance delivered.

It is a lightweight but feature reach PHP / JavaScript web framework, mature and stable, it is being proactively used and tested in several high-end web projects that can really serve many millions of page views per month with a single physical server ! The original software architecture of this web framework allows it to deliver a paradox:

  • it have more default built-in features in the code base than the well-known frameworks compared with Symfony, Laravel or Zend Framework
  • it delivers much more performance being between 3x to 4x faster (as HTTP Requests / second) compared with Symfony, Laravel or Zend Framework
  • when used with Persistent Cache based on In-Memory DB like Redis or Memcache it beats Varnish in many aspects:
    • delivers ~ the same speed as Varnish but allows granulary level caching policy of zones in controllers
    • works also with HTTPS (by example, Varnish does not)
    • caching policies can be controlled to expire based on content / GET or POST variables INPUT even with changing COOKIES

This software framework is compatible, stable and actively tested with PHP 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 versions.

Prefered PHP version is: 8.0 (LTS).

 

Benchmark Scenario:

Using a simple controller (no Caching) that Outputs: 'Hello World' The benchmark was running using Apache Benchmark suite with the following command: ab -n 5000 -c 250 http://{localhost}/{framework}/{benchmark-page}   Hardware platform: one physical server (Supermicro):

  • 2 x Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz 64-bit (Total: 44 cores / 88 threads)
  • 512 GB RAM, DDR4 ECC @ 2133 MHz
  • HDD 2 x 1TB SSD/NVME

Software:

  • OS: Debian 11 Linux 64-bit, up-to-date 2022-07-30
  • Apps: Apache 2.4.54, PHP 8.0.21 with Opcache enabled

Benchmark Results of tested PHP Frameworks:

  • Smart.Framework v.8.7 head@2022.07.30 with MarkersTPL Templating: ~ 8.887K (8887) requests per second
  • CodeIgniter v.4.1 with PHP Templating: ~ 5.38K (5381) requests per second ( 1.3x slower than Smart.Framework )
  • Laravel 8.5 with Blade Templating ~ 1.85K (1852) requests per second ( 5x slower than Smart.Framework )
  • Symfony 5.2 with Twig Templating: ~ 1.74K (1741) requests per second ( 5x slower than Smart.Framework )