หากคุณกำลังมองหาคำอธิบายที่สมบูรณ์ยิ่งขึ้นของโครงการตรวจสอบเว็บไซต์เอกสาร: https://www.uddocs.com/
การสาธิตนี้แสดงคุณสมบัติหลักของห้องสมุด
ฉันเขียนรหัสนี้เพื่อหลีกเลี่ยงการเขียนซ้ำแล้วซ้ำอีกในสิ่งเดียวกัน ฉันเขียนเว็บแอปพลิเคชันมาหลายปีแล้ว แอปพลิเคชันเหล่านั้นกำลังทำอะไรอยู่? พวกเขากำลังรวบรวมข้อมูลจากแบบฟอร์มบันทึกข้อมูลนั้นในฐานข้อมูลแล้วแก้ไขข้อมูลนั้นในรูปแบบอื่นและแสดงข้อมูลในตารางหรือในโฆษณาไดอะแกรมบางครั้งพวกเขากำลังลบข้อมูลนั้น (ไม่บ่อยนัก)
ฉันได้ทำสิ่งนั้นซ้ำแล้วซ้ำอีกรูปแบบหลังจากแบบฟอร์ม 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 และกรอบที่อยู่นอกเส้นทางของฉัน
ฉันรู้ว่าฉันใช้ SQL และไม่ใช่ ORM แต่ฉันชอบ SQL! SQL ไม่ได้เปลี่ยนแปลงในทุกวัยและนั่นหมายความว่ามันใช้งานได้! มันไม่น่าเศร้าที่จะแก่!
ฉันให้ชื่อกับตารางและในอาร์เรย์ฟิลด์ฉันกำหนดพาดหัวและฟิลด์ SQL ที่นำมาจากการสืบค้นเพื่อเติมเต็มเซลล์ของตารางนั้น คุณแก้ไขปัญหาง่าย ๆ นี้กี่ครั้งแล้ว? คุณเคยเขียนโค้ดน้อยลงหรือไม่? ถ้าเป็นจริงโปรดแจ้งให้เราทราบ!
ฉันรู้ว่าคุณกำลังคิดอะไรอยู่: นี่ไม่ทั่วไปพอถ้าฉันต้องการคำนวณหรือพูดคุยเกี่ยวกับตรรกะหรือทำอะไรที่ซับซ้อนกว่านี้ คุณสามารถกลับไปที่ทางเก่าของคุณและตั้งโปรแกรมมุมมองคอนโทรลเลอร์อาจทำจาก partials เชื่อมต่อและ orm เขียนโมเดลของคุณและ ... เป็นต้นไปเรื่อย ๆ ...
แต่ขอตรงคุณต้องการมันจริงๆเหรอ? คุณทำอย่างนั้นบ่อยแค่ไหน? ฉันมักจะพบ 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 สำหรับแผนภูมิข้อมูลสำหรับสิ่งที่คุณต้องการ และถ้าคุณต้องการมากขึ้นคุณสามารถกำหนดเทมเพลตใหม่ได้เสมอนี่เป็นโครงการโอเพนซอร์สหลังจากทั้งหมด
มีบางสิ่งที่ต้องทำเพื่อให้ไฟล์เสร็จสมบูรณ์ เรา neet ที่จะให้ชื่อมันเพื่อให้เราสามารถค้นหาระหว่างแหล่งข้อมูล เราจำเป็นต้องเพิ่มข้อมูลเมตาบางอย่างในกรณีในอนาคตเราจำเป็นต้องเพิ่มคุณสมบัติเพิ่มเติม
ระบบสนับสนุนแนวคิดของกลุ่มที่อนุญาตในการเข้าถึงทรัพยากรเฉพาะสิ่งนี้จะอธิบายอาร์เรย์ "กลุ่มที่อนุญาต"
มีส่วน 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 ด้วยทรัพยากรทั้งหมดที่คุณต้องการ เปิดโฟลเดอร์นั้นและมีรูปลักษณ์เพื่อให้คุณสามารถดูว่าทรัพยากรอื่น ๆ ถูกกำหนดอย่างไร