taeluf/phad

将html、sql和php集成到基于html的视图的框架

v0.4.x-dev 2023-10-26 13:14 UTC

This package is auto-updated.

Last update: 2024-09-08 04:13:28 UTC


README

Phad: Php Html Api Database

一种将HTML编译为与数据库相连的PHP的模板系统。

注意:虽然Phad功能丰富、健壮,并在多个生产网站上使用,但它尚未准备好用于主流使用。部分代码库设计非常糟糕,集成过于复杂,文档不足,并且使用起来比应有的难度更大。

我们计划修复这些问题,但目前没有具体的完成时间。我们的分支 v1.0 是尝试解决这些问题的尝试,并且我们正在努力进行。v0.5、v0.6和v0.7也是尝试修复这些问题的尝试,但它们是过于雄心勃勃的重写。v1.0希望带来最小的破坏性变更,同时显著改进内部结构,进行相当程度的重构,但尽量减少重写。

安装

composer require taeluf/phad v0.4.x-dev   

或者在您的 composer.json

{"require":{ "taeluf/phad": "v0.4.x-dev"}}  

文档

  • 基本用法 - 不同的视图和初始设置的示例
  • 速查表 - 函数和功能的快速概述,以及
  • 扩展示例 - 生成网站地图、访问控制、垃圾邮件控制、错误处理等示例。
  • 故障排除 - 已知问题和解决方案
  • 实用工具/功能
    • 表单验证 - 编写表单,在提交时自动验证,或手动验证数据
  • 架构 - Phad开发的架构概述。

示例视图

当请求 /blog/some-slug/ 时,将执行 SELECT * from blog AS Blog WHERE Blog.slug LIKE 'some-slug'(使用PDO通过属性参数绑定)。然后,h1 将填充为 blog.title,在将其从Markdown转换为HTML后,<x-prop ...> 将完全替换为 blog.body

<route pattern="/blog/{slug}/"></route>    
<div item="Blog" >    
    <p-data where="Blog.slug LIKE :slug"></p-data>    
    <h1 prop="title"></h1>    
    <x-prop prop="body" filter="commonmark:markdownToHtml"></x-prop>    
</div>    

还提供了网站地图信息、PHP代码和访问控制(如 role:admin)等许多其他功能。

示例表单

GET /form/blog/ 将显示此表单。如果传递 ?id=37,则将自动将具有 id=37 的博客文章填充到表单中。

POST /form/blog/ 将将博客文章保存到数据库,无论是否 INSERT 新文章或 UPDATE 现有文章。

<route pattern="/form/blog/"></route>    
<form item="blog" target="/blog/{slug}/">    
    <onsubmit><?php    
        $articleRow['slug'] = \YourNamespace\slugify($articleRow['title']);  
    ?></onsubmit>    
  
    <input type="text" name="title" maxlength="75" />    
    <textarea name="body" maxlength="1500"></textarea>  
  
    <input type="submit" value="Submit" />  
    
    <input type="hidden" name="id" />    
      
    <!-- The `backend` type allows the form validation to permit slug being added during `onsubmit` ->  
    <input type="backend" name="slug" />  
</form>    

表单还支持 <didsubmit>、访问设置(如 role:admin)、文件上传(有点乱)等更多功能。