leandrocosta/lhweb

此包最新版本(dev-master)无可用许可证信息。

轻量级Web框架。

dev-master 2018-01-30 14:57 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:21:02 UTC


README

这是一个Web框架,简单、完善,专为我的项目开发,现提供给大家使用。我汇集了我所知道的最好的编程实践,任何建议欢迎联系。许多人可能会说这是在重新发明轮子,但我创建自己框架的主要动机是有一个符合我需求的个性化工具。

要求

整个框架的开发都在使用php 5.5.26和Fedora 20安装上进行,并使用PDO数据库层。其余的都是纯PHP。

安装

可以通过git安装或从GitHUB下载zip文件。

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

或者

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

或者通过composer添加需求到你的项目。

使用

项目中的web/index.php文件夹有一个使用示例。要访问类,只需包含autoloader,它位于inc/autoloader.php

我们有3个主要包

lhweb\actions目前只包含一个WebAction类,其目的是处理来自用户的请求,验证和格式化数据,并应由其类扩展以处理此任务。

lhweb\controller是放置业务类的地方,您应创建控制器并扩展AbstractController类,在其中开发您的应用程序的业务逻辑。

lhweb\database是数据库连接类的位置。LHDB扩展PDO并添加了一些功能,例如维护连接列表以供实体使用。我们有一个GenericQuery类,基本上是一个SQL工厂,使用它可以以面向对象的方式构建SQL查询,以下是一些示例。

第一步是创建一个实体类,它将表示数据库中的一个表,它应该扩展use lhweb\database\LHWebEntity;,以下是一个快速示例

use lhweb\database\LHWebEntity;

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

好了,这个类将被控制器自动映射,如下所示:- 表名 meuusuario - 字段:id, nome, login, senha。- 主键:id,默认主键名为id,类型为int。

要创建一个支持CRUD操作的控制器,只需做以下操作

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.

我将很快发布更高级的表间关系示例。