إذا كنت تبحث عن وصف أكثر اكتمالا للمشروع ، تحقق من موقع الوثائق: https://www.uddocs.com/
يعرض هذا العرض التوضيحي الميزات الرئيسية للمكتبة.
كتبت هذا الرمز لتجنب الكتابة مرارًا وتكرارًا نفس الأشياء. لقد كنت أكتب تطبيقات الويب لسنوات عديدة. ماذا كانت تلك التطبيقات تفعل؟ كانوا يضعون بيانات من نموذج ، وحفظوا هذه البيانات في قاعدة بيانات ثم تحرير تلك البيانات في نموذج آخر وإظهار أن البيانات في جدول أو في إعلان مخطط في بعض الأحيان كانوا يحذفون تلك البيانات (ليس في كثير من الأحيان لتصبح عادلة).
حسنًا ، لقد فعلت ذلك مرارًا وتكرارًا ، وتشكل بعد النموذج ، بعد 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 ، واكتب النموذج الخاص بك و ... حتى على ...
ولكن ، لنكن مستقيمين ، هل تحتاج حقًا؟ كم مرة تفعل ذلك؟ غالبًا ما وجدت 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 في هذا الملف ، فهو موجود لأن كل هذه التكوينات مخصصة لطلب الحصول على.
{
"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 مع جميع الموارد التي تحتاجها. افتح هذا المجلد وإلقاء نظرة حتى تتمكن من معرفة كيفية تعريف الموارد الأخرى.