Luminova Framework

Interface Classes

Last updated: 2024-05-20 01:15:17

A clear communication between different components is crucial for building robust and maintainable systems.

These classes serve as the cornerstone for defining clear contracts, ensuring seamless integration, and implementation across various parts of the application. By establishing well-defined interfaces.


ExceptionInterface

\Luminova\Interface\ExceptionInterface

This Interface serves as a base interface for custom exception classes. It provides a common contract for exception handling and logging errors throughout the application.


ErrorHandlerInterface

\Luminova\Interface\ErrorHandlerInterface

This interface serves to specify the type of controller class used in router, in other to properly handle error controllers, all error handling controller class must implement ErrorHandlerInterface.


CookieInterface

\Luminova\Interface\CookieInterface

Interface for managing HTTP client-side cookies, offering methods to create, read, update, and delete cookies.


DatabaseInterface

\Luminova\Interface\DatabaseInterface

Interface for database drivers, providing methods for establishing and managing database connections, preparing and executing SQL statements, and fetching query results. This interface serves as a contract for implementing various database drivers.


ConnInterface

\Luminova\Interface\ConnInterface

This interface serves to specify the type of database connection class used, such as PDO or MYSQLI. Instead of directly using class names, we create a unique interface that both database connection objects extend. This promotes flexibility and abstraction in code design, allowing for interchangeable implementations while adhering to a common interface.


EncryptionInterface

\Luminova\Interface\EncryptionInterface

Interface for encryption and decryption drivers, defining methods for encrypting data with various cryptographic algorithms and keys, as well as decrypting encrypted data.


HttpClientInterface

\Luminova\Interface\HttpClientInterface

Interface for HTTP clients drivers such as Guzzle and Curl, defining methods to send a network request and manipulate response .


NetworkInterface

\Luminova\Interface\NetworkInterface

Interface for HTTP network manager, providing methods for establishing network requests, asynchronous requests, sending and receiving data over the network using different types of HTTP methods, and handling network-related errors.


MailerInterface

\Luminova\Interface\MailerInterface

Interface for mail clients, outlining methods for composing and sending emails, managing email attachments, specifying recipients and sender addresses, and configuring email delivery options.


ServicesInterface

\Luminova\Interface\ServicesInterface

Interface for defining application services, specifying methods for initializing, configuring, and managing various services of your business logics.


SessionManagerInterface

\Luminova\Interface\SessionManagerInterface

Interface for managing user sessions storage drivers, it offers methods for storing and retrieving session data, and managing session expiration and persistence.


ValidationInterface

\Luminova\Interface\ValidationInterface

Interface for validating user submitted input data against predefined rules, providing methods for defining validation rules, applying rules to input data, and retrieving validation results. This interface helps ensure data integrity and enforce data validation constraints in applications.


AiInterface

\Luminova\Interface\AiInterface

The interface for creating AIs models, currently only OpenAI ChatGPT has been implemented.