PHPackages                             leandrocosta/lhweb - 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. leandrocosta/lhweb

ActiveLibrary[Framework](/categories/framework)

leandrocosta/lhweb
==================

A lightweight web framework.

061PHP

Since Jan 30Pushed 8y ago1 watchersCompare

[ Source](https://github.com/lokidarkeden/lhweb)[ Packagist](https://packagist.org/packages/leandrocosta/lhweb)[ RSS](/packages/leandrocosta-lhweb/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Sobre
=====

[](#sobre)

Um Framework Web, simples, bem enchuto, desenvolvido para meus próprios projetos, que venho disponibilizar para quem achar interessente utilizá-lo. Tenho aqui reunir o máximo de boas práticas de programação que conheço e que acho conveniente. Qualquer sugestão só entrar em contato. Muitos podem argumentar que é reinventar a roda, mas minha grande motivação para criação meu próprio framework é a de ter uma ferramenta personalizada para minhas necessidades, e bem enchuta.

---

Requerimentos
=============

[](#requerimentos)

Todo o desenvolvimento do framework está sendo feito com *php 5.5.26* em uma instalação do Fedora 20. E utilizando a camada de PDO para o banco de dados. Todo o resto é php puro.

---

Instalação
==========

[](#instalação)

A instalação pode ser feita atravéz do git ou baixando o arquivo zip no GitHUB:

`git clone https://github.com/lokidarkeden/lhweb`

ou

`wget https://github.com/lokidarkeden/lhweb/archive/master.zip && unzip master.zip`

ou ainda através do composer, adicionando o requerimento no seu projeto.

---

Utilização
==========

[](#utilização)

Temos um exemplo de uso na pasta *web/index.php* do próprio projeto. Para ter acesso as classes basta incluir o autoloader, que fica em *inc/autoloader.php*.

Temos 3 pacotes principais:

*lhweb\\actions* composto hoje de uma única classe, a WebAction. Cujo objetivo será tratar a request vinda dos usuários, validar e formatar os dados, e deverá ser extendida por suas classes que cuidarão desta tarefa.

*lhweb\\controller* é onde fica a classe para para suas classes de négocio, vocẽ deverá criar seus controladores extendendo a class AbstractController, e neles desenvolver a lógica de negócio da sua aplicação.

*lhweb\\database* é onde temos as classes de conexão com o banco de dados. a *LHDB*extende a classe PDO adicionando algumas funcionalidades, como por exemplo, manter uma lista de conexões criadas para serem utilizadas pelas entidades. Temos a classe GenericQuery que é basicamente uma fabrica de sql, com ele podemos contruir consultas sql de forma orientada a objetos, veja exemplos abaixo.

---

O primeiro passo é a criação de uma classe entidade, que irá representar uma tabela do seu banco de dados, ela deve extender use lhweb\\database\\LHWebEntity;, vamos a um exemplo rápido:

```
use lhweb\database\LHWebEntity;

class MeuUsuario extends LHWebEntity {
    public $id;
    public $nome;
    public $login;
    public $senha;
}

```

Pronto, essa classe será mapeada pelo controlador automaticamente da seguinte forma: - Tabela nome meuusuario - campos: id, nome, login, senha. - chave primária: id, por padrão a chave primaria é chamada id, e o tipo int.

Para criar um controlador padrão, capaz de operações CRUD, basta fazer o seguinte:

```
use lhweb\controller\LHWebController;

$ctl = new LHWebController(MeuUsuario::class);

$primeiro = $ctl->primeiro(); // Obtem o primeiro registro ordenado pela Chave Primária.
$ultimo = $ctl->ultimo(); // Obtem o último registro ordenado pela Chave Primária.
$porpkk = $ctl->getByPK(5); // Obtem o registro pela chave primária passada como parâmetro.
$proximo = $ctl->proximo($porpkk->id); // Obtem o registro posterior da id passada.
$proximo = $ctl->anterior($porpkk->id); // Obtem o registro anterior da id passada.

// Efetuando um update em um registro
$usuario = $ctl->getByPK(5); // Obtem o Usuário
$usuario->nome = "Alterando o Nome";
$ctl->salvar($usuario);

// Removento um Registro
$ctl->apagar(5);

// Cadastrando um novo registro.
$u = new MeuUsuario();
$u->nome = "Usuario Novo";
$u->login = "Login do Usuario";
$u->senha = "123";
$u = $ctl->salvar($u); // Recebe o usuário salvo com a id gerada pelo banco de dados.

```

Em breve estarei postando exemplos mais avançados de relacionamentos entre tabelas.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/38ed9eceb129a758a0af55cbdeaf5f861bf77c0ca437ccc684d97f31de20d85f?d=identicon)[lokidarkeden](/maintainers/lokidarkeden)

---

Top Contributors

[![leandro-costa-oliveira](https://avatars.githubusercontent.com/u/6571331?v=4)](https://github.com/leandro-costa-oliveira "leandro-costa-oliveira (2 commits)")

### Embed Badge

![Health badge](/badges/leandrocosta-lhweb/health.svg)

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

###  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)
