نقترح بشدة إطار عملنا للمدونات الشخصية ووكالات الأخبار وتطوير API REST.
تمامًا مثل أي إطار عمل آخر في PHP ، بدأنا هذا المشروع استنادًا إلى بنية MVC مع الخدمات المميزة مثل $Add->Loader و REST API و SharedLayouts و Middlewares ومفاهيم الأمان المحددة مسبقًا. كل شيء في البساطة بسيط مثل تثبيته على الخادم الخاص بك!
قم بتنزيله من هذا المستودع:
composer create-project miladxandi/simplist
تذكر أن إصدار PHP الخاص بك يجب أن يكون أعلى من 7 ويجب تعيين عنوان الطلب المحلي على:
public_html/
بعد ذلك ، يجب عليك تعيين اسم المستخدم وجدول قاعدة البيانات الخاصة بك! في مشروع محلي للاستخدام الأول ، يجب أن تكون هذه القيم مثل هذا:
الجدول: Simplist_simplist
اسم المستخدم: الجذر
كلمة المرور: فارغة (بدون قيمة أو سلسلة فارغة)
يمكنك تغيير هذه القيم عن طريق الانتقال إلى طبقة النموذج وتغييرها في Connecting.phtml في مجلد Core/Configurations ، أو انتقل إلى هذا العنوان:
الأساسية/التكوينات/connection.phtml
ملاحظة: يوجد ملف جدول SQL في مجلد "الموارد" الذي يمكنك استيراده بسهولة إلى قاعدة بيانات MySQL المحلية أو عبر الإنترنت
إلى أن تعمل على دليل عمل محلي ، يتم إيقاف تشغيل بروتوكول HTTPS ، ولكن إذا كنت ترغب في تحميله على الخادم الخاص بك ، فيمكن تشغيل بروتوكول HTTPS عن طريق جعل "SecureProtocol" true في المجلد الأساسي ، في مجلد التكوينات ، يمكنك العثور على ملف توجيه ، أو الذهاب إلى هذا العنوان:
الأساسية/التكوينات/التوجيه
يمكنك تغيير $SecureProtocol = false; إلى $SecureProtocol = true;
إنه مثبت بالكامل وجاهز للاستخدام.
لتحديد طرقك الخاصة ، انتقل إلى هذا العنوان:
المسار/الإعداد/المسارات
هناك مجرد عائد صفيف يعيد عنوان URL كمفتاح صفيف وتكوينات كقيمه. يجب أن ينشئ كل مسار جديد تمامًا من هذا القالب:
'/aboutus' => [
'target'=>'Main.Home.Aboutus',
'get'=> true,
'post'=> false,
'middleware'=>'Main.Home.Aboutus'
'important'=>false
],
اسمحوا لي أن أصفه خطا سطر:
'/aboutus'
هذا هو عنوان ويب سيعالج العنوان المطلوب من قبل وحدات التحكم والأدوات الوسطى وهو مفتاح الصفيف. ملاحظة: نظام جهاز التوجيه الخاص بنا ليس حساسًا للحالة ، لكنك قد تحدد طرقًا صغيرة.
'target'=>'Main.Home.Aboutus'
وهذا يعني أن وحدة التحكم المستهدفة هي "HomeController" في المجلد "الرئيسي" من مجلد وحدات التحكم ، وبعد طلب هذا العنوان "عن طريقة" حول Us كما كتب في نهاية
'target'=>'Main.Home.Aboutus'. كما يمكنك معالجةQuerry Stringعن طريق الحصول عليها ، في معلمات وظيفتها. يمكنك أيضًا تقديم بعض الطلبات إلى قاعدة البيانات في ملفات وحدة التحكم. يجب إدراجQuerry Stringأو قيم قاعدة البيانات المحددة في صفيف مع اسم$Viewbag. يمكنك إرسالها إلى صفحة الويب الخاصة بك بواسطة هذا الرمز:View::Process("Main.Home.Post",$Viewbag);يمكن الآن الوصول إليه من ملف "العرض المطلوب" في "public_html/view/...". بدلاً من كتابة رموز المنطق الخاصة بك في وحدات التحكم ، نشجعك على وضعها في مجلد "المنطق" في مجلد النموذج. هناك بعض العقود الرائعة في هذا المجلد لمساعدتك في تطوير عملك بشكل أفضل من أي وقت مضى.
ملاحظة: يجب أن تنشئ وحدات التحكم والأدوات المتوسطة باستخدام امتدادات Controller.phtml أو Middleware.phtml . على سبيل المثال ، لدينا "HomeController" ولكن يمكننا الوصول إليها من خلال كتابة اسمها فقط بدون كلمة "وحدة التحكم": "الصفحة الرئيسية"
'get'=> true أو 'post'=> false
هذه هي طرق طلب الخادم العامة التي يمكننا تحديدها هنا. إذا كنت ترغب في رفض أي طلب نشر ، فأنت بحاجة فقط إلى تغيير القيمة
postإلىfalse. بعد ذلك ، يمكنك رؤية كل طلب باستخدام طريقةPOSTRequest سيظهر لك خطأ "طريقة الطلب غير مسموح به".
'middleware'=>'Main.Home.Aboutus'
عندما لم يكن هناك تعارض مع عنوان URL المطلوب وطريقة الطلب المحددة الخاصة به ، قبل بدء تشغيل وحدات التحكم ، لدينا بعض البرامج الوسيطة للقيام ببعض عمليات التحقق. يمكن أن تستخدم للتحقق من ملفات تعريف الارتباط الأمان أو خيارات لغة موقع الويب وما
trueذلك. يمكن أيضًا للمعالجة علىQuerry Stringعن طريق الحصول عليها ، في معلمات وظائفها. تمامًا مثل وحدات التحكم ، نحتاج إلى اسمها الخالص بدون كلمة "الوسيطة".
'important'=>false
كما تقرأ من قبل ، فإن نظامنا ليس حساسًا للحالة بشكل افتراضي ، ولكن في بعض الأحيان تحتاج إلى معالجة عنوان URL الحساس للحالة للتحقق من صحة بعض الرموز والبيانات الحساسة أو أي سبب آخر. يمكنك تغيير قاعدة نظام التوجيه الخاص بنا باستخدام
'important'=>trueأو إيقاف تشغيله بـ'important'=>false. ملاحظة: هذا المفتاح في صفيف التوجيه غير مطلوب.
لتحديد طرقك الخاصة ، انتقل إلى هذا العنوان:
الطريق/الإعداد/api.phtml
هناك مجرد عائد صفيف يعيد عنوان URL كمفتاح صفيف وتكوينات كقيمه. يجب أن ينشئ كل مسار جديد تمامًا من هذا القالب:
'/api' => [
'target' => 'Api.Home.Index',
'allowed'=> 'get',
'blocked'=> 'DELETE',
'middleware'=>'Main.Home.Index',
'important'=>false
]
اسمحوا لي أن أصفه خطا سطر:
'/api'
هذا عنوان ويب لاتصال API وسيقوم بمعالجة الخدمة المطلوبة من قبل وحدات التحكم والأدوات الوسطى وهي مفتاح الصفيف. ملاحظة: نظام جهاز التوجيه الخاص بنا ليس حساسًا للحالة ، لكنك قد تحدد طرقًا صغيرة.
'target' => 'Api.Home.Index'
وهذا يعني أن وحدة التحكم المستهدفة هي "HomeController" في مجلد "API" من مجلد وحدات التحكم وبعد طلب هذا العنوان "فهرس" فهرس "كما كتب في نهاية
'target' => 'Api.Home.Index'. كما يمكنك معالجةQuerry Stringعن طريق الحصول عليها ، في معلمات وظيفتها. يمكنك أيضًا تقديم بعض الطلبات إلى قاعدة البيانات في ملفات وحدة التحكم. بدلاً من كتابة رموز المنطق الخاصة بك في وحدات التحكم ، نشجعك على وضعها في مجلد "المنطق" في مجلد النموذج. هناك بعض العقود الرائعة في هذا المجلد لمساعدتك في تطوير عملك بشكل أفضل من أي وقت مضى.
ملاحظة: يجب أن تنشئ وحدات التحكم والأدوات المتوسطة باستخدام امتدادات Controller.phtml أو Middleware.phtml . على سبيل المثال ، لدينا "HomeController" ولكن يمكننا الوصول إليها من خلال كتابة اسمها فقط بدون كلمة "وحدة التحكم": "الصفحة الرئيسية"
'allowed'=> 'get' أو 'blocked'=> 'DELETE'
إذا كنت ترغب في السماح لتطبيقك بالعمل أي فعل HTTP ، فيمكنك تعريفه هنا وفصله باستخدام فاصلة للسماح لـ API باستخدام هذه الأساليب. على سبيل المثال ، نريد أن يتفاعل تطبيقنا مع خادمنا مع
POSTوالحصولGETالأساليب ؛ لذلك نحن نحدد كلاهما هنا تمامًا مثل هذا:
'allowed'=> 'get,post'
ثم نريد تقييد بعض أفعال HTTP من الطلب إلى الخادم الخاص بنا ، نحتاج إلى كتابتها في الجزء
blockedمن هذا القسم:
'blocked'=> 'DELETE'
يمكننا أن نكتب أكبر عدد من الأفعال التي نريدها في هذه الأقسام.
'middleware'=>'Main.Home.Aboutus'
عندما لم يكن هناك تعارض مع عنوان URL المطلوب وطريقة الطلب المحددة الخاصة به ، قبل بدء تشغيل وحدات التحكم ، لدينا بعض البرامج الوسيطة للقيام ببعض عمليات التحقق. يمكن أن تستخدم للتحقق من ملفات تعريف الارتباط الأمان أو خيارات لغة موقع الويب وما
trueذلك. يمكن أيضًا للمعالجة علىQuerry Stringعن طريق الحصول عليها ، في معلمات وظائفها. تمامًا مثل وحدات التحكم ، نحتاج إلى اسمها الخالص بدون كلمة "الوسيطة".
'important'=>false
كما تقرأ من قبل ، فإن نظامنا ليس حساسًا للحالة بشكل افتراضي ، ولكن في بعض الأحيان تحتاج إلى معالجة عنوان URL الحساس للحالة للتحقق من صحة بعض الرموز والبيانات الحساسة أو أي سبب آخر. يمكنك تغيير قاعدة نظام التوجيه الخاص بنا باستخدام
'important'=>trueأو إيقاف تشغيله بـ'important'=>false. ملاحظة: هذا المفتاح في صفيف التوجيه غير مطلوب.
مكتبة oLoad هي خدمة مبسطة وتم تعريفها لمساعدة قسم HTML head على أن تكون أكثر نظافة. إذا كنت بحاجة إلى استخدام هذه المكتبة ، فيجب عليك استخدام هذا الرمز في ملف العرض الخاص بك في البداية:
<?php $Add = new CoreRequirementoLoad("../../..","Style/Main","Script/Main","Content/Main"); ?>
في هذا الرمز ، يمكنك تحديد مواقع مختلفة لـ JS ، CSS ، الصور وما إلى ذلك ، لأننا نسمح لك بتخصيص تطبيقك ../../.. سوف يظهر لك الجذر الافتراضي لهذه المحتويات ، ولكن يمكنك تغييره في كل صفحة تقوم بإنشائها.
يمكن لهذا الرمز استيراد مكتبات JS أو CSS الخارجية أو الصور.
أيضًا ، يمكن أن يضيف أنواعًا فريدة من الملفات إلى مشروعك.
هذا رمز كامل لإظهار كيف يمكنك إظهار صورة على HTML الخاص بك:
<?php $Add->Loader("png","eastCloud","Shared",true,false,"eastCloud",24,24,"Style","Class"); ?>
هذا الرمز يعني:
<?php $Add->Loader(Extension: "png",Name: "eastCloud",UniqueUrl: "Shared",Local: true,UniqueType: false,ImageAlt: "eastCloud",ImageWidth: 24,ImageHeight: 24,ImageStyle: "Style",ImageClass: "Class"); ?>
وسيقوم بإنشاء علامة <img> الكاملة في أي مكان تستخدمه.
يمكنك إضافة مكتبات JS و CSS تمامًا مثل هذا ؛ ولكن باستثناء كل شيء بعد الوسيطة Local في هذه الطريقة وملحقاتها الخاصة مثل هذا:
<?php $Add->Loader("css","Style",null,true); ?>
<?php $Add->Loader("js","Script",null,true); ?>
تتيح لك حجة UniqueUrl تحديد المكتبات أو الصور الداخلية أو الخارجية. إذا لم تكن هناك حاجة لتحديد UniqueUrl ، فما عليك سوى ترك اقتباس مزدوج فارغ ( "" ) أو تمرير فارغ كمناسبة. إنه فارغ بشكل افتراضي.
تعني الوسيطة Local أن المكتبة أو الصورة عبارة عن ملف محلي أم لا ، فسيستخدم النظام الجذر الافتراضي مع الوسيطة المحددة للعثور على هذا الملف إذا كان Local true .
يجب أن تكون وسيطة UniqueType true إذا كان التمديد هو كل شيء باستثناء JS و CSS و PNG و JPEG و JPG و ICO. انها false بشكل افتراضي.
سيقوم امتداد js بإنشاء كامل <script src="../../../Script/Main/main.js"></script> رمز في كل مكان تسميه. سيقوم امتداد css بإنشاء كامل <link rel="stylesheet" type="text/css" href="../../../Style/Shared/File.css"> رمز في كل مكان تسميه.
ServentLayouts هو اسم خدمة مبسطة موجودة في المجلد المشترك في المجلد ( public_html/View/Shared ).
أنه يحتوي على مجلدين وملف .phtml مع اسم "التخطيطات" افتراضيًا. يمكن أن يحتوي ملف التخطيطات على فئة واحدة أو أكثر لكل جزء من المشروع. على سبيل المثال ، هناك فئة مثل هذا:
class MainLayouts { public static function _Header() { include "Main/_HeaderLayout.phtml"; } public static function _Menu() { include "Main/_MenuLayout.phtml"; } public static function _Footer() { include "Main/_FooterLayout.phtml"; } }
يتضمن بعض الطرق لتحميل بعض ملفات العرض الأخرى كرأس وقائمة وتذييل. لا يوجد مفهوم معقد.
نضع بعض الملفات التي تبرز مع ".md" امتدادات كملفات دليلنا التفصيلية. نقترح بشدة تنزيل وتثبيت عارض Mark Down لـ Brower لعرض هذه الملفات بتجربة أفضل.