• Github
  • Slack
  • Telegram
  • Version
    • V0.01
  • Getting Started
    • # Meet Epaphrodites
    • # Installation
    • # Configuration
    • # Deployment
  • Directory structure
    • # Font-end
    • # Back-end
  • Front widgets
    • # Add views
    • # Forms field
    • # Breadcrumb
    • # Pagination
    • # Charts
    • # Answers messages
    • # Ajax Request
  • The basics
    • # Controlers
    • # Rooting
    • # CSRF Protection
    • # Layouts
    • # Heredia
    • # Paths
    • # Mail
    • # Excel files
  • Digging Deeper
    • # Commandes
    • # Python
    • # C
    • # Twig
    • # User Right
  • Database
    • # Configuration
    • # Create database
    • # Migration
    • # Seeding
    • # Query Builder
    • # TOML and JSON
  • Security
    • # Validation
  • How to make (French)
    • # Introduction
    • # Installation
    • # Configuration
    • # Back-End (PHP)
    • # Back-End (PYTHON)
    • # Back-End (C)
    • # Front-End
    • # Database

🤝🏾 Meeting Epaphrodites

The Epaphrodites Framework is an open-source development environment that stands out for its multilingual versatility and its ability to meet the evolving needs of modern programming enthusiasts. Originally rooted in PHP, it now fully embraces Python and C as core components of its architecture, offering a powerful triad of technologies within a unified environment.

What truly distinguishes Epaphrodites is its seamless integration of these languages, its commitment to simplicity, and its modular design. Developers are empowered to tailor their tools to their specific needs rather than conforming to rigid structures. This high degree of flexibility makes it particularly appealing for those aiming to push the boundaries of conventional web and systems development.

In addition, the framework stays firmly aligned with the latest technological trends, ensuring that the applications built with it are not only robust and secure, but also innovative and future-ready.

Its vibrant and collaborative community plays a key role in driving continuous improvement, offering a rich space for knowledge exchange and cross-domain collaboration.
What to remember from the Epaphrodites Framework:

  • Multilingual Flexibility : Epaphrodites natively supports PHP, Python, and C, allowing developers to combine web development, scripting, and low-level performance-critical tasks within the same environment — without switching toolchains.
  • Multidatabase Support : The framework enables simultaneous use of SQL and NoSQL databases in a single project. This hybrid approach makes it easy to adapt to various data models and performance requirements.
  • Multidisciplinary Approach : With built-in support for multiple languages and technologies, Epaphrodites encourages cross-functional development — from backend logic and system-level operations to dynamic scripting.
  • Community Engagement : The Epaphrodites community is a driving force behind its evolution. Knowledge sharing and collaboration are central, making it a great ecosystem for growth, experimentation, and innovation.

🚀 Installation

  • Introduction
  • System needs
  • Download Epaphrodites
  • Library update

# Introduction

The Epaphrodites Framework is much more than just a development tool — it is a gateway to a universe of technological possibilities. By uniting the power of PHP, the flexibility of Python, and the performance of C, it creates a unique environment where programmers can fully express their creativity across different layers of application development.
Its rare combination of simplicity, linguistic versatility, and community-driven innovation makes it an ideal choice for those who wish to break free from conventional development models. Whether you're building web apps, scripting automation, or optimizing performance-critical components, Epaphrodites offers a cohesive and empowering space.
Joining its vibrant community means gaining access to a living ecosystem where ideas flow freely, support is always at hand, and projects evolve through shared growth. In short, the Epaphrodites Framework captures the essence of exploration, mastery, and technological curiosity, inspiring developers to venture into new digital frontiers.

âš™ī¸ System Dependencies

These components are required to run and extend the framework, especially when working with native modules or hybrid integrations. Make sure your system has the following:

  • PHP Required & Optional Extensions (PHP â‰Ĩ 8.2) — As listed above, ensure all core and optional extensions are configured appropriately
  • PHP Dev Tools — Needed to compile and install PHP extensions (php-dev on Linux / php on macOS)
  • Python 3 — Required for Python module integration within the framework
  • C Compiler — Strongly recommended for compiling C modules and building performance-critical features
đŸŽ¯ Required PHP Extensions

These extensions are mandatory for running the core components of the Epaphrodites Framework. Ensure they are installed and enabled with PHP â‰Ĩ 8.2, as some internal features and native functions used by the framework rely on syntax and behaviors introduced in this version and later.

  • OpenSSL — SSL/TLS encryption for secure communications
  • ZIP — Handles ZIP archive compression and extraction
  • PDO — Database abstraction layer for consistent DB access
  • gd — Provides image manipulation capabilities (resize, crop, filters)
  • intl — Supports localization and international formatting
  • XML — Allows parsing and manipulation of XML documents
  • JSON — Enables encoding and decoding of JSON data
  • Mbstring — Ensures support for multi-byte strings (e.g., UTF-8)
  • pdo_sqlite — Lightweight embedded database driver (SQLite)

🔧 Optional PHP Extensions

These extensions are recommended for advanced use cases or for projects requiring support for specific databases and caching layers:

  • Redis — High-performance caching and session handling
  • pdo_oci — Oracle Database support
  • pdo_mysql — MySQL and MariaDB support
  • mongodb — Integration with MongoDB (NoSQL)
  • pdo_sqlsrv — Microsoft SQL Server support
  • pdo_pgsql — PostgreSQL support

🔍 Installation verification

You also have the ability to run the following commands to confirm the full installation of all necessary extensions for your projects. Doing so guarantees that your system is impeccably configured and primed to fulfill your specific requirements with utmost efficiency.

php -v// This command checks if PHP is installed by displaying the PHP version.

php -m// Use this command to verify that the PHP system's needs are met by listing all installed extensions.

composer -v// This command allows you to ascertain if Composer is installed by showing the Composer version.

python --version// This command checks if PYTHON is installed by displaying the PYTHON version.

phpize --version// is the tool that prepares the compilation environment for an extension

php-config --version// provides the configuration information necessary for the compilation.

# đŸ’ģ Download Epaphrodites

Epaphrodites-Framework uses Composer to manage its dependencies. Therefore, you need to first install Composer on your machine.
After you have installed composer, you may create a new Epaphrodites project via the Composer create-project command:

composer create-project epaphrodites/epaphrodites project-name

â„šī¸ If the installation requires certain extensions, execute the following command to install them: Make sure to check your PHP version compatibility before proceeding with the installation :

php epaphrodites -i

🟡 Recommendation : If you have already installed MongoDB on your machine and wish to incorporate its usage into your project,
please execute the following command :

composer require mongodb/mongodb

# Library update

Continue the installation by doing :

composer update

When you install new dependencies via Composer or modify the structure of your classes' directories, running composer dump-autoload allows Composer to rebuild the autoload.php file based on the new configurations. This ensures Epaphrodites has the ability to correctly find and load the required classes during the execution of your application.

composer dump-autoload

âš™ī¸ Configuration

  • Introduction
  • Open SetDirectory
  • Open config.ini
  • Run your project

# Introduction

Epaphrodites offers two main types of configuration files: #setDirectory.php for sytem files, and #config.ini file dedicated to database configuration. Each option is documented, so feel free to browse through the files and become acquainted with the available options. These two files are crucial to ensure the proper global functioning of the framework.

# Open SetDirectory

Open your project and find it on this link:

bin\config\SetDirectory.php

When in development mode, the production constant is set to false, but in production, it is set to true.
This constant is used to distinguish between two runtime environments.
In development (_PRODUCTION_ = false), error display is enabled to make debugging easier.
In production (_PRODUCTION_ = true), error display is disabled to ensure security and provide a better user experience.

define( '_PRODUCTION_', false );

When SetDirectory.php is openning, define your first database driver connexion type (accepted : mysql/postgre/sqlserver/sqlite/mongo/redis ).

define( '_FIRST_DRIVER_', 'sqlite' );

This setup doesn't necessarily imply the exclusive use of a single database throughout your project. Epaphrodites concurrently operates with two types of databases (SQL or NoSQL). In this context, we kindly ask you to determine the driver for the first database your project will connect to.

# Open config.ini

Open your project and find it on this link :

bin\config\Config.ini

Choose your first database configuration

# ------------- FIRST CONFIGURATION -------------

[1_CONFIGURATION]

DRIVER = sqlite
DATABASE = epaphroditedb.sqlite
HOST = 127.0.0.1
PORT =
USER =
PASSWORD =
SOCKET = false
SOCKET_PATH =

# ------------- END OF FIRST CONFIGURATION -------------

🟡 Note : For SQL databases, you must create your database before running your application. In the case of MongoDB, the system will generate your database based on your configuration.

Run this command to create your database :

php heredia create:db epaphroditesdb

This command is intended for users who have previously installed Python on their machine. It simplifies the installation of specific Python libraries essential for the optimal functioning of the Epaphrodites framework. Furthermore, you have the freedom, at your level, to integrate other libraries according to the requirements of your projects :

php heredia pip:component

# Run your project

cd your_project
php heredia run:server --port=8000

After running the server, open your browser on this link : http://127.0.0.1:8000

Default Epaphrodites authentification access :

Login : admin
Password : admin

😎 Enjoy yourself !!!

🌍 Deployment

  • Introduction
  • Apache
  • Nginx

# Introduction

Epaphrodites-framework is perfectly configured for smooth operation on both Apache and Nginx. However, make sure that all dependencies required by Epaphrodites are present on your online server. This document explores essential elements ensuring an optimal deployment of your application.

# Apache

When installed, Epaphrodites-framework comes with a default preconfigured .htaccess file. Therefore, ensure that the mod_rewrite module is activated for the server to recognize the file's instructions. This file has been specially designed to handle URL rewriting, error management, as well as to restrict access to crucial files and directories, among other functionalities, thereby simplifying the initial setup process. One of the major advantages of this file is its adaptability: it can be adjusted and extended to precisely fit the unique requirements of your projects, providing extensive customization and a perfect fit for your specific needs.

# Nginx

If you're using Nginx as your server, you can utilize the following configuration file as a starting point to set up your web server. However, bear in mind that this file will likely require adjustments based on the specifics of your online server configuration. It's crucial to understand that each web infrastructure may have unique aspects, such as port management, SSL certificates, security settings, or performance requirements, which may necessitate modifications to the basic configuration file to precisely suit your environment. Consequently, a meticulous adaptation of these settings is often necessary to ensure the optimal and secure operation of the epaphrodite-framework on your Nginx server.

                        
                        
location / {
   try_files $uri $uri/ /index.php?$query_string;
}
error_page 403 /error/403.php;
error_page 404 /error/404.php;
error_page 500 /error/500.php;
error_page 502 /error/502.php;
error_page 504 /error/504.php;
location ~ /\.ht {
  deny all;
}
location /bin/ {
  deny all;
  return 403;
}
location ~* ^/(error/|README\.md|\.gitignore|composer\.json|composer\.lock|package\.json|phpunit\.xml|\.gitattributes|robots\.txt|kouadio|zaouly|epaphrodites|counter\.json) {
   deny all;
}
Next

Copyright Š 2023 developed by Epaphrodites developers team