如果您正在寻找对项目的更完整的描述,请查看文档网站:https://www.uddocs.com/
该演示显示了库的主要功能。
我编写了此代码,以避免一遍又一遍地编写相同的内容。我一直在编写Web应用程序多年。这些申请在做什么?他们正在从表单中删除数据,将数据保存在数据库中,然后以另一种形式编辑该数据,并在表中或图表广告中显示该数据有时会删除该数据(公平不太频繁)。
好吧,我一遍又一遍地做到这一点,在形式之后形式,在ORM之后,MVC之后MVC。
我感到迷路和无聊。我的工作如此努力,我的成就很少。
我学到了许多框架来加快我的流程,我读了很多书:新事物,因此退出!
然后我开始注意到我的工作是可重复的,这些框架使我放慢了脚步。
使用MVC方法,您构成的每种更改都需要对您的应用程序进行更改,这需要您至少打开3个文件。
因此,我开始怀疑:例如,我真正需要什么才能制作出从数据库中获取的表格数据?答案是:我需要进行SQL查询,我需要定义表的结构,并且需要将查询结果放在表格上。就是这样。我需要这三件事,远不止于此。
我将所有这些信息都放在JSON文件中,这出来了:
{
"query" : {
"sql" : " select id, name, amount, duedate FROM requestv1; "
},
"table" : {
"title" : " My table " ,
"fields" : [
{ "headline" : " Name " , "sqlfield" : " name " },
{ "headline" : " Amount " , "sqlfield" : " amount " },
{ "headline" : " Due date " , "sqlfield" : " duedate " }
]
}
}没有ORM,没有MVC和一个远离我的框架。
我知道我使用了SQL,而不是ORM,但我喜欢SQL! SQL多年来都没有变化,这意味着它有效!变老并不难过!
我给了表格和字段阵列中的标题,我定义了从查询中获取的标题和SQL字段,以填充该表的单元格。您解决了几次相同的简单问题?您是否曾经做过少的代码?如果那是真的,请告诉我!
我知道您在想什么:这还不够一般,如果我需要进行计算或概括一些逻辑或做更复杂的事情怎么办?好吧,您总是可以回到旧方法,并编程控制器一个视图,也许是由部分组成,连接和ORM,写下您的模型,等等,等等...
但是,让我们保持直率,您真的需要吗?您多久做一次?我经常发现我的桌子填充了一个只有一个查询的结果,也许很少有桌子。
如果我需要在表中添加某些支持操作的链接怎么办?我也以JSON格式定义了这一点。
{
"query" : {
"sql" : " select id, name, amount, duedate FROM requestv1; "
},
"table" : {
"title" : " My table " ,
"fields" : [
{ "headline" : " Name " , "sqlfield" : " name " },
{ "headline" : " Amount " , "sqlfield" : " amount " },
{ "headline" : " Due date " , "sqlfield" : " duedate " }
],
"actions" : [
{ "label" : " Info " , "resource" : " inforequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Edit " , "resource" : " formrequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Delete " , "resource" : " deletereport " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] }
]
}
}通过标签定义链接(用户需要查看什么是单击),可能来自SQL查询的几个参数。
如果您想知道什么是资源,则是在系统中找到特定的JSON配置文件的索引。对于您需要的任何内容,有用于表格,PDF导出,数据图表的资源。而且,如果您需要更多信息,您始终可以定义一个新模板,这毕竟是一个开源项目。
为了完成文件,几乎没有事情要做。我们将其命名为一个名称,以便我们可以在资源之间找到它。我们需要添加一些元数据,以防万一我们需要添加更多功能。
该系统支持允许组访问特定资源的概念,这解释了“允许组”数组。
该文件中有一个get部分,因为所有这些配置都是用于get请求的。
{
"name" : " requesttablev1 " ,
"metadata" : { "type" : " table " , "version" : " 1 " },
"allowedgroups" : [ " administrationgroup " , " teachergroup " , " managergroup " ],
"get" : {
"request" : {
"parameters" : []
},
"query" : {
"sql" : " select id, name, amount, duedate FROM requestv1; "
},
"table" : {
"title" : " My table " ,
"fields" : [
{ "headline" : " Name " , "sqlfield" : " name " },
{ "headline" : " Amount " , "sqlfield" : " amount " },
{ "headline" : " Due date " , "sqlfield" : " duedate " }
],
"actions" : [
{ "label" : " Info " , "resource" : " inforequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Edit " , "resource" : " formrequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Delete " , "resource" : " deletereport " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] }
]
}
}
}如果您可以使用标准模板,则可以使用所需的所有资源来制作整个应用程序。打开该文件夹并查看一下,以便您可以查看其他资源的定义。