PHPackages                             jayroncastro/jfphp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. jayroncastro/jfphp

ActiveLibrary[Framework](/categories/framework)

jayroncastro/jfphp
==================

Small PHP Framework for use in specific projects

v2.1.0(10mo ago)06GPL-3.0-or-laterPHPPHP &gt;=8.4

Since Jun 18Pushed 10mo agoCompare

[ Source](https://github.com/jayroncastro/jfphp)[ Packagist](https://packagist.org/packages/jayroncastro/jfphp)[ RSS](/packages/jayroncastro-jfphp/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)DependenciesVersions (9)Used By (0)

JFPHP Framework
===============

[](#jfphp-framework)

[![PHP Version](https://camo.githubusercontent.com/6e44ad49e5307c87d1393389feb52ab61c99956e2e5f8c77177b2501f1d3d47f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e342d3838393242462e737667)](https://camo.githubusercontent.com/6e44ad49e5307c87d1393389feb52ab61c99956e2e5f8c77177b2501f1d3d47f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e342d3838393242462e737667)[![License](https://camo.githubusercontent.com/1c7d7671effd64df0ad09c2aa87a73bfaf614a8ec5e72dbe870c8635b57bb1ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d332e302d2d6f722d2d6c617465722d626c75652e737667)](https://camo.githubusercontent.com/1c7d7671effd64df0ad09c2aa87a73bfaf614a8ec5e72dbe870c8635b57bb1ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d332e302d2d6f722d2d6c617465722d626c75652e737667)

Um micro-framework PHP com componentes modernos, fortemente tipados e reutilizáveis, projetado para acelerar o desenvolvimento de projetos com código limpo e robusto.

---

Visão Geral
-----------

[](#visão-geral)

O JFPHP nasceu da necessidade de ter um conjunto de ferramentas padronizadas e modernas para lidar com tarefas comuns do desenvolvimento PHP, como a manipulação de coleções de dados e o tratamento de requisições HTTP. O framework é construído com as funcionalidades mais recentes do PHP 8.4+, incluindo `Enums`, classes `readonly` e tipagem estrita para máxima segurança e performance.

Principais Funcionalidades
--------------------------

[](#principais-funcionalidades)

- **API de Coleções Genéricas**: Um sistema completo para trabalhar com listas e conjuntos de forma orientada a objetos.
    - `ListInterface`: Para coleções ordenadas que permitem acesso por índice (`ArrayList`).
    - `SetInterface`: Para coleções de elementos únicos (`HashSet`).
    - `ListIteratorInterface`: Um iterador avançado com suporte a navegação bidirecional e modificação durante o loop.
- **Manipulador de Requisições HTTP**: Um sistema desacoplado e moderno para lidar com dados de entrada.
    - Detecta automaticamente o método HTTP (`GET`, `POST`, `PUT`, `PATCH`, etc.).
    - Parseia dados de `$_GET`, `$_POST` e corpos de requisição `JSON`.
    - Utiliza um sistema de `Sanitizer` injetável para validação e limpeza de dados.
    - Retorna dados em `Value Objects` imutáveis e com tipo garantido.

Estrutura do Framework (Namespaces)
-----------------------------------

[](#estrutura-do-framework-namespaces)

Aqui está um mapa de todas as classes e interfaces disponíveis no framework:

- **`jayroncastro\jfphp`**
    - `ArrayList`
    - `HashSet`
    - `ArrayListIterator`
    - **`collections`** (Sub-namespace conceitual para interfaces de coleção)
        - `CollectionInterface`
        - `ListInterface`
        - `SetInterface`
        - `ListIteratorInterface`
    - **`abstract`** (Sub-namespace conceitual para classes base)
        - `AbstractCollection`
        - `AbstractList`
        - `AbstractSet`
- **`jayroncastro\jfphp\lang`**
    - `ValueObject`
- **`jayroncastro\jfphp\http`**
    - `Request`
    - `RequestParams`
    - `RequestResult` (Interface)
    - `SanitizerInterface`
    - **`enums`**
        - `DataType`
        - `HttpMethod`
    - **`result`**
        - `ArrayResult`
        - `BoolResult`
        - `EmailResult`
        - `FloatResult`
        - `HtmlResult`
        - `IntResult`
        - `RawResult`
        - `StringResult`
        - `TextareaResult`
        - `UrlResult`
- **`jayroncastro\jfphp\exception`**
    - `ExceptionMessage` (Enum)
    - `IndexOutOfBoundsException`
    - `IllegalStateException`
    - `NoSuchElementException`

Requisitos
----------

[](#requisitos)

- PHP &gt;= 8.4

Instalação
----------

[](#instalação)

A forma recomendada de instalar o JFPHP é via [Composer](https://getcomposer.org/).

```
composer require jayroncastro/jfphp
```

Como Usar
---------

[](#como-usar)

### 1. Coleções

[](#1-coleções)

O sistema de coleções fornece uma API fluente e poderosa para manipular arrays de forma orientada a objetos.

**Exemplo com `ArrayList`:**

```
use jayroncastro\jfphp\collections\ArrayList;

$lista = new ArrayList(['PHP', 'JavaScript']);
$lista->add('Python');
// $lista agora contém ['PHP', 'JavaScript', 'Python']
```

**Exemplo com `HashSet`:**

```
use jayroncastro\jfphp\collections\HashSet;

$set = new HashSet();
$set->add('vermelho'); // true (adicionado)
$set->add('vermelho'); // false (ignorado, pois já existe)
// $set agora contém ['vermelho']
```

### 2. Manipulador de Requisições

[](#2-manipulador-de-requisições)

O sistema permite buscar dados de `$_POST`, `$_GET`, ou do corpo da requisição de forma segura.

**Exemplo de uso em um projeto (ex: WordPress):**

```
// 1. Crie um Sanitizer específico para seu projeto (ex: no seu plugin)
class WordPressSanitizer implements \jayroncastro\jfphp\http\SanitizerInterface {
    // ... lógica com funções do WordPress ...
}

// 2. Use o framework para pegar os dados
use jayroncastro\jfphp\http\Request;
use jayroncastro\jfphp\http\RequestParams;
use jayroncastro\jfphp\http\enums\DataType;

$request = new Request(new WordPressSanitizer());
$params = new RequestParams('user_email', DataType::EMAIL);
$emailResult = $request->getParam($params);
$emailLimpo = $emailResult->getValue();
```

Licença
-------

[](#licença)

Este framework está licenciado sob a Licença Pública Geral GNU v3.0 ou posterior. Veja o arquivo `LICENSE` para mais detalhes.

Autor
-----

[](#autor)

Criado e mantido por **Jayron Castro**.

```

```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance54

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

6

Last Release

309d ago

Major Versions

v1.3.0 → v2.0.02025-07-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/c270dfa30ec059de160cc7cdea54eb8c2ce92bf5ff331ba9860b25cf899b30a8?d=identicon)[jacastro](/maintainers/jacastro)

---

Top Contributors

[![jayroncastro](https://avatars.githubusercontent.com/u/8277287?v=4)](https://github.com/jayroncastro "jayroncastro (17 commits)")

### Embed Badge

![Health badge](/badges/jayroncastro-jfphp/health.svg)

```
[![Health](https://phpackages.com/badges/jayroncastro-jfphp/health.svg)](https://phpackages.com/packages/jayroncastro-jfphp)
```

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
