Skip to content

About

Custom PHP web framework used in production e-commerce and business applications

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Figaroo Engine 2

A custom PHP web framework I built between 2011 and 2018 and used in production systems through 2021.

The framework was created as a reusable foundation for websites, CRM systems and web applications. I used it across multiple production projects, including the e-commerce platform and CRM system at Finnautoparts, the public-facing platform and administration system at Online Patent and custom applications developed for other companies.

Features

  • Front-controller architecture with application-level routing
  • Clean URLs implemented with Apache mod_rewrite
  • Smarty-based template rendering
  • MySQL database abstraction with typed query placeholders and result-set helpers
  • Support for regular page requests, AJAX endpoints and HTTP APIs
  • Session and request handling
  • Reusable application modules and shared framework components
  • Multiple caching layers for rendered pages and application data
  • JavaScript and CSS bundling, minification and caching
  • Cron-based scheduled tasks
  • Centralized configuration, error handling and debugging utilities
  • SEO-oriented URL and page-delivery optimizations

Request flow

Apache routes requests that do not match existing files or directories to the main index.php entry point. The application initializes the framework, database connection and shared state before dispatching the request through the router.

flowchart TB
    REQUEST["HTTP Request"]
    APACHE["Apache<br/>mod_rewrite"]
    ENTRY["index.php<br/>Front Controller"]
    INIT["Application Initialization<br/>Config · DB · Session"]
    ROUTER["Router"]
    PAGE["Page Request"]
    AJAX["AJAX / API Request"]
    SMARTY["Smarty<br/>Template Rendering"]
    RESPONSE["HTTP Response"]

    REQUEST --> APACHE
    APACHE --> ENTRY
    ENTRY --> INIT
    INIT --> ROUTER

    ROUTER --> PAGE
    ROUTER --> AJAX

    PAGE --> SMARTY
    SMARTY --> RESPONSE
    AJAX --> RESPONSE
Loading

Database layer

The framework included its own MySQL abstraction built on top of mysqli.

Besides connection and result-set handling, it provided typed placeholders for building queries, escaping values and identifiers, working with arrays of values, and tracking executed queries.

Caching and frontend optimization

The framework used several caching mechanisms depending on the type of data:

  • Smarty caching for rendered HTML pages
  • Application-level caching for reusable data
  • Cached results of static asset processing

JavaScript and CSS assets could be combined and minified to reduce the number and size of browser requests. The generated bundles were cached and reused instead of being rebuilt for every request.

These features were part of a broader focus on page-load performance and SEO for production websites.

Application capabilities

Applications could define custom modules on top of the framework and expose regular web pages, AJAX endpoints and HTTP APIs through the same application foundation.

The framework also supported scheduled jobs executed through cron, which were used by production applications for background and periodic tasks.

Third-party PHP libraries could be integrated through Composer; dependencies were defined by individual applications rather than by the framework itself.

Production usage

Figaroo Engine 2 served as the foundation for multiple production systems, including e-commerce platforms, CRM and internal business tools, legal-tech applications and custom web applications.

At Finnautoparts, it powered the e-commerce platform and custom CRM system that eventually scaled to:

  • 50K+ daily users
  • 100M+ database records
  • 4TB+ of data

It was also used as the application foundation for Online Patent’s public-facing platform and administration system.

Repository structure

kernel/    Framework core, libraries and configuration
content/   Application-specific modules and templates
js/        JavaScript assets
files/     Application files and uploaded content
cache/     Runtime cache
vendor/    Third-party PHP libraries

Technology

  • PHP 5.x-7.x (up to PHP 7.4)
  • MySQL / mysqli
  • Smarty
  • JavaScript
  • Composer
  • Apache / mod_rewrite

Project status

Historical project developed between 2011 and 2018 and used in production through 2021.

It is no longer maintained; this repository preserves the original implementation.

Author

Valery Kirkizh

valery@kirkizh.com

About

Custom PHP web framework used in production e-commerce and business applications

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages