Wenn Sie nach einer vollständigeren Beschreibung des Projekts suchen, lesen Sie die Dokumentationsseite: https://www.uddocs.com/
Diese Demo zeigt die Hauptmerkmale der Bibliothek.
Ich habe diesen Code geschrieben, um zu vermeiden, immer wieder das gleiche Zeug zu schreiben. Ich schreibe seit vielen Jahren Webanwendungen. Was machten diese Anwendungen? Sie taten Daten aus einem Formular aus, speichern diese Daten in einer Datenbank und bearbeiteten diese Daten dann in einem anderen Formular und zeigten diese Daten in einer Tabelle oder in einer Diagramm -Anzeige. Manchmal löschten sie diese Daten (nicht sehr oft, um fair zu sein).
Nun, das habe ich immer und immer wieder geschafft, nach Form, orm nach Orm, MVC nach MVC.
Ich fühlte mich verloren und gelangweilt. Ich habe so hart gearbeitet und so wenig erreicht.
Ich habe viele Framework gelernt, um meinen Prozess zu beschleunigen. Ich habe viele Bücher gelesen: das neue Ding, also austritt!
Dann bemerkte ich, dass meine Arbeit wiederholbar war und diese Frameworks mich verlangsamten.
Bei einem MVC -Ansatz müssen Sie jede Änderung, die Sie für Ihre Anwendung vornehmen möchten, mindestens 3 Dateien geöffnet.
Also begann ich mich zu fragen: Was brauche ich wirklich, um beispielsweise eine Tabelle aus einer Datenbank zu erstellen? Die Antwort war: Ich muss eine SQL -Abfrage vornehmen, ich muss die Struktur der Tabelle definieren und die Ergebnisse der Abfrage auf die Tabelle legen. Das war's. Ich brauche diese drei Dinge, nichts mehr als das.
Ich habe all diese Informationen in eine JSON -Datei eingebracht, und dies kam heraus:
{
"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 " }
]
}
}Kein Orm, kein MVC und ein Framework, das mir aus dem Weg bleibt.
Ich weiß, dass ich SQL und kein Orm verwendet habe, aber ich mag SQL! SQL hat sich seit Ewigkeiten nicht verändert, und das bedeutet, dass es funktioniert! Es ist nicht traurig, alt zu sein!
Ich gab dem Tisch einen Titel und im Fields -Array definierte ich die Schlagzeilen und die SQL -Felder, die aus der Abfrage entnommen wurden, um die Zellen dieser Tabelle zu füllen. Wie oft haben Sie das gleiche einfache Problem gelöst? Haben Sie jemals weniger Code geschrieben? Wenn das wahr ist, lassen Sie es mich bitte wissen!
Ich weiß, woran Sie denken: Dies ist nicht allgemein genug, was ist, wenn ich Berechnungen durchführen oder eine Logik verallgemeinern oder etwas Komplizierteres tun muss? Nun, Sie können immer wieder zu Ihrem alten Weg zurückkehren und einen Controller eine Ansicht programmieren, vielleicht aus Teil, Verbinden und Orm, Ihr Modell aufschreiben und ... so weiter und so weiter und so weiter ...
Aber lass uns gerade sein, brauchst du es wirklich? Wie oft machst du das? Ich fand Mysel oft eine Tabelle mit den Ergebnissen von nur einer Abfrage, vielleicht mit wenigen zusammengefügten Tischen.
Was ist, wenn ich der Tabelle einen Link zu einer unterstützten Aktion hinzufügen muss? Ich habe das auch im JSON -Format definiert.
{
"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 " }] }
]
}
}Ein Link wird aus einem Etikett definiert (der Benutzer muss sehen, was klickt) eine Aktion und wenige Parameter, die möglicherweise aus der SQL -Abfrage stammen.
Wenn Sie sich fragen, was eine Ressource ist, ist es ein Index, eine bestimmte JSON -Konfigurationsdatei wie diese im System zu finden. Es gibt Ressourcen für Formulare, für PDF -Exporte, für Datendiagramme für alles, was Sie brauchen. Und wenn Sie mehr benötigen, können Sie immer eine neue Vorlage definieren, dies ist schließlich ein Open -Source -Projekt.
Es gibt nur wenige Dinge zu tun, um die Datei zu vervollständigen. Wir sind nicht, um ihm einen Namen zu geben, damit wir ihn zwischen Al den Ressourcen finden können. Wir müssen einige Metadaten hinzufügen, falls wir in Zukunft weitere Funktionen hinzufügen müssen.
Das System unterstützt das Konzept der zulässigen Gruppen, um auf eine bestimmte Ressource zuzugreifen. Dies erklärt das Array "erlaubte Gruppen".
In dieser Datei gibt es einen Get -Abschnitt, der da ist, da alle diese Konfigurationen für eine GET -Anforderung dienen.
{
"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 " }] }
]
}
}
}Wenn Sie die Standardvorlagen verwenden können, können Sie eine gesamte Anwendung erstellen, die nur den SRC/benutzerdefinierten Ordner mit allen von Ihnen benötigten Ressourcen füllen. Öffnen Sie diesen Ordner und sehen Sie aus, damit Sie sehen können, wie die anderen Ressourcen definiert werden.