Download the PHP package adaiasmagdiel/erlenmeyer without Composer
On this page you can find all versions of the php package adaiasmagdiel/erlenmeyer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download adaiasmagdiel/erlenmeyer
More information about adaiasmagdiel/erlenmeyer
Files in adaiasmagdiel/erlenmeyer
Package erlenmeyer
Short Description Erlenmeyer is a lightweight PHP framework designed to create web applications simply and efficiently.
License GPL-3.0-only
Informations about the package erlenmeyer
Erlenmeyer - Minimal PHP Framework for Web Applications
Erlenmeyer is a lightweight PHP framework designed for simplicity and efficiency in building web applications. Inspired by the minimalism of Python's Flask, Erlenmeyer is not a direct clone but a unique solution tailored for PHP developers. It is currently in its early stages, making it perfect for small projects, APIs, or microservices where a lean setup is preferred. I created Erlenmeyer to streamline my own projects, but it's open for anyone seeking a straightforward, no-frills framework.
Table of Contents
- Introduction
- Features
- Requirements
- Installation
- Getting Started
- Routing
- Middlewares
- Error Handling
- Session Management
- Request and Response Objects
- Tests
- Use Cases
- License
- Reference
Introduction
Erlenmeyer is a lightweight PHP framework designed for simplicity and efficiency in building web applications. Inspired by the minimalism of Python's Flask, Erlenmeyer is not a direct clone but a unique solution tailored for PHP developers. It is currently in its early stages, making it perfect for small projects, APIs, or microservices where a lean setup is preferred. I created Erlenmeyer to streamline my own projects, but it's open for anyone seeking a straightforward, no-frills framework.
Key Characteristics:
- Minimalist: Small footprint, easy to learn and use.
- Flexible: Supports various use cases, from simple scripts to full applications.
- Extensible: Built with extensibility in mind, allowing custom functionality.
- Flask-Inspired: Familiar routing and handler concepts for developers coming from Python.
Features
- Simple and intuitive routing system with support for dynamic routes.
- Support for global and route-specific middlewares.
- Custom error handling for 404 errors and exceptions.
- Integrated session management with flash messages.
- Comprehensive
RequestandResponseobjects for handling HTTP requests and responses. - Trusted proxy support for safely resolving the client IP behind a reverse proxy.
- Route groups for nesting routes under a shared prefix and middleware set.
Requirements
- PHP: 8.2 or higher
- Composer: For dependency management
- Web Server: Apache with
mod_rewriteor Nginx - PHP Extensions:
json,mbstring - Optional:
getallheadersfor enhanced header support (not always necessary)
Installation
Install Erlenmeyer using Composer:
Include it in your PHP project:
Getting Started
First, make sure to import the necessary classes:
Create a new instance of the App class:
Define routes:
Run the application:
Routing
Erlenmeyer supports various HTTP methods for routing:
Dynamic Routes
Define routes with parameters:
Redirects
Set up redirects:
Middlewares
Add global middlewares:
Add route-specific middlewares:
Error Handling
Set a custom 404 handler:
Set exception handlers:
Session Management
Use the Session class to manage sessions:
Request and Response Objects
Request
The Request object provides access to request data:
Response
The Response object allows building responses:
Tests
Erlenmeyer uses PestPHP for testing. Run tests with:
Use Cases
Erlenmeyer is suitable for a wide range of web applications. Here are some example use cases:
| Use Case | Description |
|---|---|
| Simple REST API | Create an API with endpoints for GET, POST, PUT, and DELETE, returning JSON responses. |
| Basic Web Application | Develop an application with routes for HTML pages and session management. |
| Static Page Generator | Build apps with routes for HTML pages; static assets are served by Apache or Nginx. |
| Forms and Uploads | Handle POST forms and file uploads with validation. |
Example REST API:
Example Form Handling:
Development
Documentation using mkdocs
License
Erlenmeyer is licensed under the GPLv3. See the COPYRIGHT files for details.
Reference
App
| Method | Description |
|---|---|
__construct() |
Initializes the application. |
setTrustedProxies(array $ips) |
Sets the list of trusted proxy IPs used to resolve X-Forwarded-For. |
group(string $prefix, callable $callback, array $middlewares = []) |
Groups routes under a shared prefix and middlewares. |
route(string $method, string $route, callable $action, array $middlewares = []) |
Registers a route for an HTTP method. |
get(string $route, callable $action, array $middlewares = []) |
Registers a GET route. |
post(string $route, callable $action, array $middlewares = []) |
Registers a POST route. |
any(string $route, callable $action, array $middlewares = []) |
Registers a route for any HTTP method. |
match(array $methods, string $route, callable $action, array $middlewares = []) |
Registers a route for specified methods. |
redirect(string $from, string $to, bool $permanent = false) |
Registers a redirect. |
set404Handler(callable $action) |
Sets the 404 error handler. |
setFallbackHandler(callable $action) |
Sets a fallback handler called before 404. |
addMiddleware(callable $middleware) |
Adds a global middleware. |
setExceptionHandler(string $exceptionClass, callable $handler) |
Sets an exception handler. |
run() |
Runs the application. |
Session
| Method | Description |
|---|---|
static get(string $key, $default = null) |
Gets a session value. |
static set(string $key, $value) |
Sets a session value. |
static has(string $key): bool |
Checks if a session key exists. |
static remove(string $key) |
Removes a session key. |
static regenerate(bool $deleteOldSession = true) |
Regenerates session ID (prevents fixation). |
static close() |
Releases the session lock. |
static flash(string $key, $value) |
Sets a flash message. |
static getFlash(string $key, $default = null) |
Gets and removes a flash message. |
static hasFlash(string $key): bool |
Checks if a flash message exists. |
Request
| Method | Description |
|---|---|
__construct(?array $server = null, ?array $get = null, ?array $post = null, ?array $files = null, string $inputStream = 'php://input') |
Initializes the request. |
getHeader(string $name): ?string |
Gets a specific header. |
getHeaders(): array |
Gets all headers. |
getMethod(): string |
Gets the HTTP method. |
getUri(): string |
Gets the request URI. |
getQueryParams(): array |
Gets query parameters. |
getFormData(): array |
Gets form data. |
getJson(): mixed |
Gets JSON data from the body. |
getFiles(): array |
Gets uploaded files. |
isAjax(): bool |
Checks if the request is AJAX. |
isSecure(): bool |
Checks if the request is secure (HTTPS). |
Response
| Method | Description |
|---|---|
__construct(int $statusCode = 200, array $headers = []) |
Initializes the response. |
setStatusCode(int $code): self |
Sets the HTTP status code. |
getStatusCode(): int |
Gets the HTTP status code. |
setHeader(string $name, string $value): self |
Sets an HTTP header. |
removeHeader(string $name): self |
Removes an HTTP header. |
getHeaders(): array |
Gets all headers. |
setContentType(string $contentType): self |
Sets the content type. |
getContentType(): string |
Gets the content type. |
setBody(string $body): self |
Sets the response body. |
getBody(): ?string |
Gets the response body. |
withHtml(string $html): self |
Sets HTML content. |
withTemplate(string $templatePath, array $data = []): self |
Sets content from a template. |
withJson($data, int $options = JSON_PRETTY_PRINT): self |
Sets JSON content. |
withText(string $text): self |
Sets plain text content. |
redirect(string $url, int $statusCode = 302): self |
Sets a redirect. |
withCookie(string $name, string $value, int $expire = 0, string $path = '/', string $domain = '', bool $secure = false, bool $httpOnly = true): self |
Sets a cookie. |
send(): void |
Sends the response. |
isSent(): bool |
Checks if the response has been sent. |
clear(): self |
Clears the response body and headers. |
withError(int $statusCode, string $message = '', ?callable $logger = null): self |
Sets an error response. |
withFile(string $filePath): self |
Sets the response to send a file. |
setCORS(array $options): self |
Configures CORS headers. |
All versions of erlenmeyer with dependencies
ext-json Version *
ext-mbstring Version *