Если вы ищете более полное описание проекта, посетите сайт документации: https://www.uddocs.com/
Эта демонстрация показывает основные особенности библиотеки.
Я написал этот код, чтобы не писать снова и снова. Я пишу веб -приложения в течение многих лет. Что делали эти приложения? Это были данные из формы, сохраняя эти данные в базе данных, а затем редактировали эти данные в другой форме и показывая, что данные в таблице или на диаграмме AD иногда удаляли эти данные (не очень часто справедливо).
Ну, я делал это снова и снова, Форма за формой, ORM After 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, которые были взяты из запроса, чтобы заполнить ячейки этой таблицы. Сколько раз вы решали эту же простую проблему? Вы когда -нибудь делали это, написав меньше кода? Если это правда, пожалуйста, дайте мне знать!
Я знаю, о чем вы думаете: это недостаточно общее, что, если мне нужно сделать расчеты или обобщить какую -то логику или сделать что -то более сложное? Что ж, вы всегда можете вернуться к своему старому пути и запрограммировать контроллер представление, возможно, сделанное из частичных, подключить и орм, записать свою модель и ... так далее и так далее, и так далее ...
Но давайте будем прямыми, вам это действительно нужно? Как часто вы это делаете? Я часто обнаруживал, что MySel заполняет таблицу результатами всего одного запроса, может быть, с небольшим количеством соединенных таблиц.
Что если мне нужно добавить ссылку на какое -то поддерживаемое действие в таблицу? Я также определил это в формате 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 " }] }
]
}
}
}Если вы можете использовать стандартные шаблоны, вы можете сделать целое приложение, просто заполняющее папку SRC/Custom со всеми необходимыми ресурсами. Откройте эту папку и посмотрите, чтобы вы могли увидеть, как определены другие ресурсы.