PHPackages                             rafael-yon/necterium - 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. rafael-yon/necterium

AbandonedArchivedProject[Framework](/categories/framework)

rafael-yon/necterium
====================

Necterium is an MVC framework written in PHP with the goal of having zero dependencies.

54PHP

Since Jun 16Pushed 6y ago1 watchersCompare

[ Source](https://github.com/RafaelYon/Necterium)[ Packagist](https://packagist.org/packages/rafael-yon/necterium)[ RSS](/packages/rafael-yon-necterium/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Necterium
=========

[](#necterium)

Necterium é um **framework MVC** escrito em PHP com o objetivo de possuir zero dependências.

O Necterium **não foi projetado para se distribuido com um grande framework**, seu existencia é baseada em apenas a realização de um desafio proposto para mim.

Recursos
--------

[](#recursos)

### Sistema de rotas

[](#sistema-de-rotas)

O Sistema de rotas permite separa a aplicação em 2 camadas: **web** e **api**, cada qual é segmentada também pelo método de requisição desejado.

Uma rota é definida por um **Key-Value**, onde a **Key** é uma string a qual define qual caminho deve ser utilizado para acessar o **Value**, que é composto por uma *Controller* e um *Action* - método público de uma Controller que manipula uma requisição - que são separados por um `@` em um string. Exemplo:

`'/phone/{^(([1-9])([0-9]*))$}' => 'PhoneController@show'`

Também é possível definir valores variáveis em um rota utilizando a seguinte expressão: `{expressão_regex}`. Exemplo:

`/phone/{/phone/{^(([1-9])([0-9]*))$}}`

Esta rota aceitará apenas valores variváveis inteiros maiores que 0.

### Request

[](#request)

Esta classe possui o *URI* requisitado e o método utilizado para tal. Além dos parâmetros enviados na requisitação.

Controller
----------

[](#controller)

Toda **Action** deve receber como parâmetro uma **Request**.

Response
--------

[](#response)

Uma classe para auxiliar na criação de respotas, sejam elas **Views**, ou *strings* simples.

Com uma response é possível definir com facilidade o código de respota, além de possuir uma forma conveniente de criar respotas *json*

Eurikson - Template engine
--------------------------

[](#eurikson---template-engine)

Um template engine simples, criado com o propósito de não duplicar código em suas views.

O **Eurikson** permite que vocẽ extenda um layout por meio da substituição de áreas, de agora em diante chamdas de **Section**s, ou substituições de variáveis das views - chamadas de **var**s - além de código php tradicional e utilização de varáiveis passadas anteriormente pela **Controller**

Cada view é "compilada", assim o resultado final é um arquivo único de view, ou seja, não é utilizado require on include quando vocẽ extende uma layout.

Por questões de otimização é criado um cache da view em abientes de produção. Assim é importante ressaltar que, a cada nova atualização, após o projeto estar no abiente de produção, deve-se deletar todos arquivos de cache do projeto:

$ `cd cache`

$ `rm -rf *`

### Extendendo um layout

[](#extendendo-um-layout)

Para extender um layout é muito simples, apenas utlize o comando:

`{{extends=layoutfolder.layoutfile_withou_extension}}`

Lembrando que todas as vies devem possui a extenao **.php**

### Definindo uma *var*

[](#definindo-uma-var)

`{{var=title:'Home'}}`

### Criando uma *Section*

[](#criando-uma-section)

```
{{section=content}}

                Crie, edite e exclua seus contatos.

                A ferramente de gerenciamento completo para seus contatos

{{endsection}}

```

### Definindo local de substituição

[](#definindo-local-de-substituição)

Para deinir um lugar que deve ser substituido por uma **var** ou uma **Section**. Use:

`{{yield=section_or_var_name}}`

Configurando
------------

[](#configurando)

1. Permissões
    1. Permita que o apache consiga escrever no diretório de cache: $ `sudo chown www-data:www-data -R cache`

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 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.

### Community

Maintainers

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

---

Top Contributors

[![RafaelYon](https://avatars.githubusercontent.com/u/16869887?v=4)](https://github.com/RafaelYon "RafaelYon (31 commits)")

### Embed Badge

![Health badge](/badges/rafael-yon-necterium/health.svg)

```
[![Health](https://phpackages.com/badges/rafael-yon-necterium/health.svg)](https://phpackages.com/packages/rafael-yon-necterium)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[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.

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

A simple API extension for DateTime.

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

PHPackages © 2026

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