leandrocosta /lhweb
轻量级Web框架。
Requires
- php: ^5.3.3 || ^7.0
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.
我将很快发布更高级的表间关系示例。