بادئ ذي بدء ، شكرًا جزيلاً لك على استخدام هذا الحزمة ولكونك اخترت هذه الحزمة! يحق لك الحصول على تحديثات مجانية مدى الحياة لهذه الحزمة + دعم استثنائي من المطور مباشرة.
انت مذهل!
تهدف هذه الوثائق إلى مساعدتك فيما يتعلق بكل خطوة من خطوات الاستخدام. يرجى مراجعة الوثائق بعناية لفهم كيفية استخدام هذه الحزمة بشكل صحيح. مطلوب معرفة أساسية بـ Laravel حتي تتمكن من انشاء CRUD الخاصة بك فى دقائق معدودة محوكم ومرتب ومكتمل العلاقات .
ستحتاج الى المتطلبات التالية لتجهيز واستخدام الحزمة دون عناء ويجب ان تتوفر هذه المتطلبات حتى تتفادى اي مشاكل قد تواجهك اثناء استخدام الحزمة.
max_input_vars=500000 max_input_time=6000 memory_limit=3000M max_execution_time=300 post_max_size=2000M max_file_uploads=200 upload_max_filesize=2000M
brew install wkhtmltopdfللتنصيب على نظام Linux وليكن بالتحديد Centos
CentOS 8
sudo yum -y install wget wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm sudo dnf localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpmCentOS 7
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos7.x86_64.rpm sudo yum localinstall wkhtmltox-0.12.6-1.centos7.x86_64.rpm to test pdf version wkhtmltopdf --version wkhtmltopdf 0.12.6 (with patched qt) to test image wkhtmltoimage --version wkhtmltoimage 0.12.6 (with patched qt)
تنبيه : الهدف من هذه الحزمة لتوفير الوقت والجهد وانشاء CRUD تفاعلي كامل يشمل التحقق من الادخالات حتي لا يتم الالتفات الى الروتين الاعتيادى للاطار والتركيز على المهام التى من اجلها بني عليه المشروع وانا بريء امام الله عز وجل من اي شخص يستخدم هذه الحزمة لبناء اي محتوي قد يشترك فى اعمال عنف او اي اعمال اباحية او اي اعمال من الاعمال التى لا ترضى الله عز وجل لذلك تذكر انك المسؤول وحدك عن استخدام هذه الحزمة وان النسخة مجانية لا تباع بأي مبلغ مالى لذا وجب التنبيه
(محمود ابراهيم) مطور ومنشيء الحزمة
.قبل البدء فى استخدام الحزمة يجب عليك مراعاة بعض المعايير التى اتى بها الاطار ولاستخدامها بالشكل الصحيح مع بعض المعايير التى وضعها مطور الحزمة للاخذ بالاعتبار لبعض الاعدادات الاساسية التلقائية والحزم الثابته الاساسية التى يتم تنصيبها ايضا اثناء استخدام امر التوليد للتنصيب والتجهيز واليك قائمة الحزم التى يتم تنزيلها واستخدامها تلقائيا مع الاطار ولا ينصح المطور بحذف اي من هذه الحزم الا فى حال انك تملك الخبرة فى ذلك حتي لا تتعطل احدي الخواص التى يتم تجهيزها تلقائيا مع المشروع
"barryvdh/laravel-snappy" "dompdf/dompdf" "fideloper/proxy" "fruitcake/laravel-cors" "guzzlehttp/guzzle" "intervention/image" "langnonymous/lang" "laravelcollective/html" "maatwebsite/excel" "mpdf/mpdf" "phpanonymous/c3js" "phpanonymous/it" "spatie/laravel-honeypot" "tecnickcom/tcpdf" "tymon/jwt-auth" "unisharp/laravel-filemanager" "yajra/laravel-datatables-buttons" "yajra/laravel-datatables-editor" "yajra/laravel-datatables-fractal" "yajra/laravel-datatables-html" "yajra/laravel-datatables-oracle"
تنصيب حزم المصادقةا بحسب موقع Laravel
php artisan ui:auth --views php artisan ui:auth php artisan ui bootstrap --auth php artisan ui vue --auth php artisan ui react --auth
تجهيز معلومات المشرف لدخول لوحة التحكم
php artisan migrate php artisan db:seedاضغط هنا لدخول لوحة التحكم الخاصة بالمشروع https://jobsoffices.com/admin
البريد الالكترونى: [email protected]
كلمة المرور: 123456
يجب مراعاة ان عند تركيبك الحزمة سيتم التغيير على بعض ملفات الاطار وزرع مجلدات جديدة تلقائية وايضا تجهيزات جدول المشرفين والمجموعات التى من خلالها تحديد صلاحية كل مشرف على حدا مع بعض التعديلات فى صلب ملفات الاطار الاساسية لتوفير الوقت والجهد والوصول الى بيئة جاهزة للشروع فى انشاء CRUD تفاعلى كامل مرتبط باجزاء المشروع الاخري يرجي العلم ان يمكن ان يحدث اي تغيير فى المستقبل على هذه الملفات لما يراه المطور لمصلحة اعدادات المشروع الاساسية لتطوير منهجية الانتاج والوصول لافضل شكل يناسب كل مطور قد يريد توفير بعض العناء علي نفسه
المجلدات والملفات التى يتم زرعها والتغيير عليها تلقائيا بحسب الاعدادات الحالية لهذا الاصدار
اجريت هذه التغييرات لصالح المشروع الخاص بك اي ان كان الدوافع التى ستبني بها المشروع سواء كانت خدمية بواسطة Api او خدمية بواسطة blade او اي احتياجات اخري ستلقى حتما تجهيزات لها كما اجريت بعض التعديلات على ملف session.php لتوفير تغيير اسم الجلسات فى الاطار بدلا من laravel وايضا اجريت تعديلات على ملف logging.php لتغيير نمطية اخراج logs لتكون مترخة بتاريخ اليوم التى حدثت فيه المشكلة لتفسير منطقى اكثر للمشاكل عوضا عن دمجها ىف ملف واحد باسم laravel.log بحيث تكون مقسمة تقسيما يري المطور انه حكيما واكثر فصاحة او تفسيرا كما تم ادراج مسار فى ملف filesystem.php باسم it يمكنك ازالته ان اردت ذلك بعد انتهائك من المشروع
تم عمل صفحة خاصة لمشاهدة كافة المسارات التى تم إنشائها فى مشروعك وتصنف بحسب حالة كل مسار بحسب الانواع الاتية All Routes , GET , HEAD , POST , PUT , PATCH , DELETE
يمكنك الذهاب للرابط من خلال الضغط هنا https://jobsoffices.com/it/routelist
تم تجهيز سير العمل لتمكين المطور من انشاء الخطوات اللازمة التى من خلالها يقوم برسم التبعيات للنماذج وايضا امكانية التحليل داخل كل خطوة فى سير العمل مع امكانية تخزين اكثر من خطة واكثر من سير للعمل فى وقت واحد مع امكانية الرجوع لها لاحقا لاستكمال مسيرة بناء المشروع مع اعطاء ملاحظات على كل خطوة قد مضى بها قدما اثناء تنفيذ مشروعه
يمكنك الذهاب للرابط من خلال الضغط هنا https://jobsoffices.com/it/workflow
هو ابتكار من قبل المطور لم يفكر فيه احد من قبل يقوم ببناء النماذج فى دقائق معدودة مع امكانية ادخاله تلقائيا فى الصلاحيات الخاصة بالمشرفين داخل لوحة التحكم الجاهزة المقدمة من حزمة IT لقد تم مراعاة المعايير الخاصة بال SOLID او بمعنى المباديء الخمسة للبرمجية ومنها يتمكن المطور من التعديل على مشروعه فى اي وقت مع امكانية تحديث الاطار دون المساس للملفات الاساسية للمشروع مع فصل كل الخصائص بشكل منفصل فى مجلدات مترابطة بشكل منسق جدا و يرجع اختيار اسم بابون نظرا لقرد البابون وتم استنباط الصفات الخاصة بهذا الكائن من قوته التى لا تضاهي مثيلاتها من الفصائل حيث انه وصل الى ان تم تقديس هذا الحيوان عند القدماء المصريين فى العصور الاولى من بداية عصر المصريون القدماء بناة الاهرام واصحاب التاريخ العريق لذلك تم استخدام الاسم لما فيه من صفات قوية بني عليها هذا البرنامج ليساعد المطور فى توفير الوقت والجهد وتحقيق اكبر استفادة . كما ان يمكن اعداد النموذج قبل البناء من حيث التحقق من الادخالات والحقول وبناء المتحكمات ايضا وملفات العرض وحتي ملفات اللغة بشكل كلاسيكي مبسط يمكن التغيير فيها بأي وقت وبكل الصيغ المتاحة دون المساس بالكود المصدري الخاص بالمشروع , ويتمثل هذا البرنامج فى عدة تبويبات بسيطة منها يتم التجهيز والانشاء وحتي الربط مع جداول اخري فى ثوان معدودة وهي :- .
Init CRUD-Info
Language & Other
Columns & Inputs
Relations
يمكنك الذهاب للرابط من خلال الضغط هنا https://jobsoffices.com/it/baboon-sdكما يمكنك التعديل على النموذج فى حال نسيانك اضافة بعض الاشياء مثل الحقول او حتي علاقات جانبية مع نماذج اخري وجداول فى قاعدة بياناتك , وسنشرح تباعا فى الخطوات القادمة كيفية استخدام هذه التبويبات بداية من انشاء نموذج سريع وصولا الى التعديل على تبويب قديم مع كيفية ربطه باي نموذج سابق فى احد جداول قاعدة بياناتك
باديء ذي بدء سيكون تجربتك مع بابون هي تجربة رائعة لذا تعددت المهامه فى تبويبات مختلفة تبداء من هذا التبويب الاساسي الذى منه تقوم بإعداد اساسيات الوحدة الواحدة الخاصة بك لتمكنك من اعداد نموذج امثل منها اعدادات مسارات الملفات الخاصة بالنموذج كعنوان النموذج الاول من خلال CRUD Title (Project Name) مع تحديد مساء انشاء ملفات ال blade التى ترتبط بشكل كلي مع المتحكم و النموذج المسؤول عن التخزين فى قاعدة بياناتك فمن هنا من خلال (admin blade path) يمكنك تحديد المسار الذى سيتم انشاء ملفات العرض الخاصة بلوحة التحكم التى يتم منها ادارة النموذج اما من خلال هذا الحقل (Model Name) يمكنك كتابة اسم نموذج مناسب لكل مشروع تقوم بإنشائه او نموذج فيجب عليك ان تتبع المعايير الخاصة بانشاء الكائنات مع امكانية اختيار المسار الذى سيتم انشاء النموذج فيه من خلال القائمة المنسدلة (Model Namespace) بعد ذلك وبكل سهولة يمكنك من خلال الحقل (Controller Name) كتابة اسم المتحكم الخاص بك مع تحديد مسار انشائه ايضا من القائمة المنسدلة امامك وهي (Controller Namespace) يفضل ان تختار المسارات App\Http\Controllers\Admin لمتحكمات الادارة وعند اتمام انشاء اول نموذج خاص بك ستظهر لديك قائمة منسدلة ستراها لاول مرة باسم (Edit Module From List) من خلالها يمكنك التعديل على النماذج التى قمت بانشائها سابقا لتزيد عليها بعض التحسينات بما يتوافق مع الحقول والاشياء الاخري الخاصة بك كما يمكنك ايضا اختيار رمز تعريفي من نوع fontawesome يضفي لنموذجك طابعا خاصا يمكنك اختيار احد الرموز الجاهزة من قائمة الرموز المعدة مسبقا
هذه بعض قوائم التشغيل التي قام بمنشيء الحزمة باعدادها بها بعض الدروس السريعة لتمكنك بشكل عملى فهم هذه الحزمة دون القراءة الكثيرة ان كنت لاتحب ذلك ومع ذلك يقوم المطور بعمل المزيد من قوائم التشغيل فى المستقبل لتدعيم الحزمة بشروحات سريعة لكل ما هو جديد بها هذه هي القوام المتاحة حاليا اليك الروابط
اعدادات اللغة وعناصر اخري تمثل اهمية كبيرة اثناء انشاء النموذج الخاص بك فسيكون امامك فى هذه الواجهة على اليسار بعض الحزم الاساسية التى يتم تنصيبها تلقائيا من خلال حزمة IT وهي LaravelCollective , Yajra , intervention وهذه الحزمة انت من المفترض ان تعرفها جيدا ولا وقت لشرح كل استخدام حزمة بشكل دقيق لان هذه حزم رئيسية شائعة بين المطورين اما الذى يجب ان نركز عليه هي ان هذه الحزم لابد ان تكون منصبة ولا يجوز حذف اي حزمة منهم الا فى حال استغنائك عن اي خدمة من خدماتها ولابد ان تكون على دراية تامة بهذا الامر اما مابعد ذلك فيوجد امامك بعض الخيارات التى تتمثل فى اعدادات محتوي النموذج الخاص بك مثل اولا (LaravelCollective) وهي ان يتم انشاء الحقول وال form الخاص بك من خلال هذه الحزمة اما عن (Enable Soft Delete) فانت تسمح لان تكون كل القيم الخاصة بالجدول تستخدم اسلوب الحذف الناعم اي لا يتم حذفها نهائيا وتكون كمثل قيم مخزنة حيث ان تكون مرجع يمكن استعادتها مرة اخري فى حال حدوث اي خطاء فى النموذج الخاص بك او لاستعادة البيانات عموما اما عن الخيار (Migrate This) فهو من خلاله بعد ما يتم انشاء ملف migration الخاص بالنموذج يقوم مباشرة بإنشاء الجدول تلقائيا الخاص بالنموذج فى قاعدة البيانات مباشرة اما عن الخيار (Have Admin Id) فمن خلاله تتمكن من جعل هذا النموذج تسجيل وربط اسم المشرف تلقائيا مع جدول admins الذى تم اعداده مسبقا فى قاعدة البيانات ليحمل اسماء المشرفين وحساباتهم فبهذا الخيار يتم انشاء العلاقات والربط مباشرة داخل المتحكمات الخاصة بك اما عن خيار (Make Model File) من خلاله تتمكن من انشاء Model او نموذج التخزين الخاص بك فى حال ازالة هذا الخيار لن يتم انشاء ال Model الخاص بك فهو موجود لحسابات اخري يمكن ان تحتاجها مسبقا فهدف المطور جعل الامور اكثر سلاسه ومرونة فى استخدام الحزمة اما عن خيار (Make Migration Schema File) من خلال هذا الخيار يمكنك ايضا ان تمنع انشاء ملف migration الخاص بالجدول والنموذج الخاص بك ويسري نفس الفكرة والفعل على (Make Controller FileوMake Datatable FileوMake View Files) وهو انشاء المتحكمات وملف datatable الخاص بحزمة yajra و ملفات العرض blade files فيجب عليك ان تعرف كيفية استخدام هذه الخيارات بعناية وهناك خيارات اساسية يتم اختيارها بشكل تلقائي من قبل الحزمة فيمكنك ازالة اي خيار حسب حاجتك اما عن الحقل lang file name من خلاله يمكك تحديد اسم الملف الذى سيتم ادخال كل المسميات التى ستقوم كتابتها فى التوبيب Columns & Inputs انظر الصورة بالاسفل
من هنا نكون قد قاربنا على الانتهاء من بناء نموذج اولى يمكن استخدامه وسنكون مع اول حقل تلقائي نقوم ببنائه داخل النموذج الاساسي فيكون امامك Label Name وهو الحقل المسؤول عن ادراج اسم الحقل فى ملفات اللغة الاساسية لديك بعده مباشرة سنري القائمة المنسدلة باسم Input Type منه نختار نوع الحقل وهذه هي الانواع المتاحة اما هناك حقل جاهز باسم textarea مع المحر ckeditor ان قمت باختيار هذا الحقل فساعتها سيتم ادراج محرر ckeditor بشكل ذكي مع امكانية ادراج الصور فيه من خلال laravel-filemanager المستخدمة من قبل unisharp يمكنك البحث عنها وفهم كيفية عملها لكن لا عليك قمنا بالاعدادات الاساسية لهذه الحزمة وربطها عوضا عن تضييع وقتك فعليك فقط استخدامها ولن يضيرك اي شيء فنحن هنا نطب سياسة السرعة والانجاز والحصول على افضل اداء لمشروعك بكل سهولة ويسر ودون عناء اما عن الحقل Column name in table & validation فمن خلاله نكتب اسم الحقل الذى سيتم انشائه داخل جدول قاعدة بياناتك مع معلمات اخري مثل active|1,yes/0,no فى حال كان الحقل من نوع select متعدد القيم المحدودة او user_id|App\Models\User::pluck('name','id') فى حال كان الحقل من قائمة منسدلة تاتى بقيم من جدول اخر وهذا مثال صغير لكيفية كتابة استعلام يتم دمجه تلقائيا فى القائمة المنسدلة بسهولة تامة يمكن استخدام المعلمات مثل checkbox or radio - active#1 مع الحقول من نوع checkbox , radio فى حال اضافة اكثر من معلمة وهنا نأتى الى الحقول Nullable/ SQL NULL - Have Validation فى حال اختيارك Have Validation فهنا تبداء وضع قوانين الحقل الخاصة بك بحسب كل نوع كل حقل ويرجي اختيار القوانين بدقة متناهية حتي لا تواجه اي مشكلة فيها سيظهر امامك Basic Rules وبها بعض القوانين السريعة التى يمكن تحديدها مثل الملفات والصور ونوع القيم المدخلة عن طريق الحقل اما Advanced Rules فستري بعض القوانين المتقدمة التى يتم تخصيص فيها بشكل اكبر من هنا ننتقل الى Schema Relation ومن هنا تبداء خصائص ستسهل الكثير عليك وهي الربط مع جداول قاعدة البيانات الاخري مثل المستخدم الذى قام بإضافة القيمة او اشياء اخري منها ستجد حقول سريعة يتم كتابة forginkey مع تحديد الجدول وخصائصه الاخري مع رؤية مباشرة باسفلها شكل الاستعلام بكل بساطة التى سيتم ادراجه فى ملف migration عن هذا الحقل فى حال كانه ذات علاقة متشعبة مع جدول اخري ايضا ستري بالاسفل زر + باللون الاخضر يمكنك من خلاله تخصيص حقول اخري بقوانين اخري واعدادات بحسب حاجتك لانشاء نموذج تفاعلى كامل ايضا لا تنسي column bootstrap width التى من خلالها تخصيص عرض الحقل بحسب اعدادات bootstrap فى التصميم وهذا لعدم جعل الحقول تشغيل مساحة اكبر من حاجتك انظر الصورة بالاسفل
من خلال هذا التبويب يمكنك ربط بعض الحقول مع جداول اخري من خلال الحقل (forgin_key like (user_id)) تكتب اسم الحقل وتختار ال Model الذى تريد لاربط معه من خلال relationed To Model ايضا نوع الربط من خلال relation Type
output relation likepublic function user_id (){ return $this->hasOne(\App\Models\User::class,"id","user_id"); }
باديء زي بدء يجب ان تعلم انك يجب اتباع التعليمات التى تلي بشكل متتالى حتي تنجح فى انشاء اول CRUD لك فى دقائق معدودة لا تقلق فكل شىء تقريبا جاهز لتدعيم متطلباتك من ادراج الصور والفيديو والصوتيات فى النموذج الذى سنقوم بإنشائه وسنتعرض بصورة بسيطة لإعدادات اول نموذج لك هل انت جاهز حسنا لنبداء
سنقوم بكتابة اسم النوذج التجريبى كما هو بالصورة الموضحة اسفل
لقد قمنا بكتابة اسم CRUD title (Project Name) Test CRUD
الان نأتي لإعدادت القائمة CRUD Menu List
فى الصورة السابقة ستري على اليمين مربع به هذا الاسم وهنا ستري ايضا انه اخذ نفس الاسم الذى حددناه فى CRUD Title (Project Name) انظر ايضا ستجد فرشاه بجانب هذا الحقل نقوم بالضغط عليها ستظهر لنا قائمة الرموز يمكننا تحديد الرمز الذى نريده بكل سهولة من خلال اكثر من ١٤٠٠ رمز مقدمين بشكل مجانى من fontawesome
حسنا حددنا رمز باسم fa fa-newspaper فقط قم بالضغط على الرمز ليتم دمجه تلقائيا فى baboon maker لاستخدامه داخل لوحة تحكمك
اغلق القائمة ستجد انه بالفعل تم دمج الرمز فى القائمة ليتم استخدامه عند انشاء نموذجنا التجريبي انظر الصورة اسفله
حسنا دعني استوضح بعض النقاط فى هذا التبويب ستجد امامك على اليسار جدول به اسماء الحزم الاساسية التى يراها المؤلف انها ستستخدم بشكل اساسي داخل اي مشروع لك ويجب عليك الا تقوم بحذف احدى هذه الحزم الا اذا كنت مدرك ذلك ستري اسم وحالة واصدار الحزمة وفى حالة عدم رؤية ان الحزمة installed يجب عليك تنصيبها من خلال الطرفية
فى هذا التبويب سنجد اننا امام جزء مهم ودقيق يجب اتباعه بعنايه شديدة وحساسية شديدة ايضا فعليك ان تكون حذر عند انشاء المدخلات الخاصة بك والاعمدة الخاصة بالجدول فيوجد امامك فى البداية بشكل افتراضى حقول خالية افتراضية المدخل الاول باسم Label Name وقائمة منسدلة باسم Input Type والاخير Column name in table & validation وهو اسم العمود داخل جدول النموذج الذى سيتم إنشائه وايضا ستجد اربع قوائم منسدلة تقع تحت عنوان رئيسي باسم column bootstrap width وهذه سنتحدث عنها بالترتيب لاهميتها المتواضعة التى تساهم فى تلقيص الوقت للتعديل على احجام المدخلات والحقول فى صفحة عرض لوحة التحكم
فى الصورة التالية ستجد هناك اننا اضفنا حقل متعدد القيم او قائمة منسدلة لاحظ الصورة بالاسفل ووضعنا القيم الاتية status|show,عرض/hide,اخفاء لماذا وضعناها بهذا الشكل ؟
حسنا ليس هذا هو الشكل الوحيد الذى تم وضعه بالاساس فهناك اشكال اخري متعددة سهله الكتابة كعلامة تفيد بقيم باشكال متعددة اما هذا الشكل فهو للقيم التى من النوع الذي سيحملها جدول النموذج فى قاعدة البيانات بصيغة او نوع Enum وهذه ايضا كفكرة توفر عليك الكثير فى قضاء الوقت لكتابة هذه القائمة المنسدلة فلا تقلق ف baboon سيقوم بهذا بدلا عنك بصورة سهله فقط اعطه التعليمات وهو سينفذ ذلك فى ثوان ستجد ان تجربتك ل baboon هي تجربة ممتعة حقا
فى الفترات القادمة سنقوم بتحديث هذه الوثائق لتتضمن معلمات اكثر عن baboon لكن نحاول ان نسرد تفاصيل بسيطة تمكنك من فهمة اّلية عمل baboon maker فى ابسط صورة
حسنا سيتبقى تبويب واحد وهو تبويب العلاقات سنتركه لك لتفهمه بصورة سهله وسنقوم بجمع الاراء حول هذا التبويب لنحاول ان نجعل تجربة المستخدم سهلة ومرحة جدا وهدف هذه الحزمة هي توفير الوقت والجهد على الناس
حسنا قم بالضغط على Generate CRUD سيبداء baboon بتنفيذ اوامرك