About Festi Framework

Overview

Festi empowers businesses to build custom ERP, CRM, and business management software with flexibility and efficiency. Designed for scalability and adaptability, the framework seamlessly integrates with Apache 2, IIS, and Nginx while supporting multiple databases, including MySQL, SQL Server 2000+, and PostgreSQL. Whether you need a tailored enterprise solution or a high-performance backend system, Festi provides the tools and architecture to streamline development and optimize business operations.

Getting Started

Installation

Instructions for creating a new project can be found in the Installation section.
You can set up the project manually or use Festi CLI to automate the setup process.

Create Your First Project

The best way to get started with Festi is by creating a new project from scratch. Whether you are building an ERP, CRM, or a custom business management tool, Festi provides the flexibility to get up and running quickly.

To begin, follow the step-by-step guide in the Hello World section, where you will learn how to set up a new project, configure the environment, and start developing your own software with Festi.

Routing Requests

Usually, URL routing is handled by the system plugin. The Jimbo system plugin is commonly used for this purpose. More details can be found in the Routing Requests section.

Architecture

Developing a Plugin

The Basics

Frontend

Advanced Topics

Security

Utilities

Additional Packages

These packages are an integral part of the Festi ecosystem, providing additional tools and features to enhance development.

  • Festi DI is a lightweight and powerful Dependency Injection (DI) library designed for the Festi Framework. It simplifies object creation, enhances modularity, and improves testability by automatically injecting dependencies into classes. With annotation-based injection, flexible binding mechanisms, and support for field, method, and constructor injection, Festi DI provides an efficient way to manage dependencies in PHP applications.
  • Festi Theme package provides a structured and flexible approach to managing frontend themes in Festi-based projects. It allows developers to define custom layouts, styles, and UI components while supporting dynamic content rendering through events.
  • Festi CLI is a command-line interface that comes with the Festi Framework, providing a set of tools to streamline development, automate tasks, and manage framework components efficiently. From installing the framework to managing plugins, migrations, and localization, Festi CLI offers essential utilities to enhance developer productivity.
  • Festi Cron is a robust task scheduling and job queue management library for the Festi Framework. It supports scheduled cron jobs, queue-based execution, and Kafka integration for distributed task processing.
  • Festi ObjectDB provides a powerful and flexible database abstraction layer for the Festi Framework
  • Festi AI provides a seamless way to integrate AI models like OpenAI’s GPT and Ollama (local AI models) into the Festi Framework. It enables prompt management, API connectivity, and local AI model execution.
  • Festi De/Serialization is a lightweight library for serializing and deserializing JSON data into PHP objects using attributes and annotations. It supports property mapping, constructor injection, and method-based deserialization, making it easy to convert complex JSON structures into fully typed objects. With built-in support for nested objects and flexible property mapping, it simplifies handling structured data while ensuring type safety and maintainability.
  • Festi Cache is a high-performance caching library for the Festi Framework, offering Memcache, Memcached, ArrayCache, and Pear Cache Lite adapters. It simplifies data caching to boost application speed and efficiency, with built-in exception handling and easy-to-use methods for storing, retrieving, and managing cached data.
  • Festi Compatibility Wrapper provides seamless integration between the Festi Framework and other platforms and frameworks like WordPress. It allows applications built with Festi to interact with different engines while maintaining a unified codebase.
  • Festi Async Framework is a lightweight and efficient asynchronous framework for the Festi Framework. It provides a structured way to handle asynchronous operations, including task scheduling, queue management, and background processing. With support for multiple adapters, it allows developers to choose the appropriate backend for their application.

Additional Materials

System Plugins

  • Jimbo is a system plugin that provides all essential functionalities for creating an admin panel within the Festi Framework. It includes authentication, settings management, routing, making it easy to build and manage administrative interfaces.
  • RESTful enables developers to build clean, versioned, and structured REST APIs. It supports HTTP methods like GET, POST, PUT, and DELETE, automatic request validation, custom annotations, route parameters.

Plugins

  • Mail provides email-sending capabilities, including template management, SMTP configuration, and logging of sent emails.
  • Queues allows efficient management of background tasks in the Festi ecosystem. It supports the creation, scheduling, and processing of queued tasks using customizable workers.
  • Users is a plugin that provides user management functionality, including authentication, registration, and authorization. It supports multiple authentication methods, role-based access control, and user profile management.
  • Subscribe is a plugin that provides mailing list management functionality, including subscription and email sending.
  • FestiIDE is a plugin that provides a web-based IDE for the Festi Framework. It includes code completion, syntax highlighting.
  • Modules is a plugin that provides a modular architecture for the Festi Framework. It includes module management, dependency injection, and event handling.
  • TinyMce is a plugin that provides a rich text editing experience with a wide range of formatting options and features.
  • Dashboard is a plugin that provides a dashboard system for the Festi Framework. It includes dashboard management, widget management, and widget configuration.