プロジェクトのより完全な説明を探している場合は、ドキュメントサイトをご覧ください:https://www.uddocs.com/
このデモは、ライブラリの主な機能を示しています。
同じものを何度も書き留めることを避けるために、このコードを書きました。私は長年にわたってWebアプリケーションを書いてきました。それらのアプリケーションは何をしていましたか?彼らはフォームからデータを盗み、データベースにそのデータを保存し、そのデータを別のフォームで編集し、テーブルまたは図広告でそのデータを表示することがありました。
まあ、私はそれを何度も何度もやりました、フォームの後にフォーム、ormの後に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も、私の邪魔にならないフレームワークもありません。
私はORMではなくSQLを使用したことを知っていますが、SQLが好きです! SQLは何年も変わっていません。これは、それが機能することを意味します!年をとるのは悲しいことではありません!
私はテーブルにタイトルを付け、フィールドアレイで、そのテーブルのセルを埋めるためにクエリから取られた見出しとSQLフィールドを定義しました。この同じ単純な問題を何回解決しましたか?コードを書くことを少なくしたことはありますか?それが本当なら、私に知らせてください!
私はあなたが考えていることを知っています:これは十分に一般的ではありません。計算をしたり、いくつかのロジックを一般化したり、より複雑なことをしたりする必要がある場合はどうなりますか?さて、あなたはいつでもあなたの古い方法に戻り、おそらく部分的な接続とORMで作られたビューをコントローラーにプログラムし、あなたのモデルを書き留めます...
しかし、まっすぐにしましょう、あなたは本当にそれを必要としていますか?どのくらいの頻度でそれをしますか?マイセルがテーブルを1つだけのクエリの結果で埋めているのをよく見つけました。
サポートされているアクションへのリンクをテーブルに追加する必要がある場合はどうなりますか? 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 " }] }
]
}
}リンクは、ラベル(ユーザーはクリックしているものを確認する必要があります)から定義されています。
リソースが何であるか疑問に思っている場合、システム内の特定の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/カスタムフォルダーに記入するだけでアプリケーション全体を作成できます。そのフォルダーを開いて、他のリソースがどのように定義されているかを確認できるように見てください。