Alpharooq MVC
// clone the repository
git clone https://github.com/alpharooq/alpharooq
// go into the repository
cd alpharooq
// alpharooq init
php rooq init
// alpharooq run server
php rooq server
// clone the repository
git clone https://github.com/alpharooq/alpharooq
// go into the repository
cd alpharooq
// alpharooq init
php rooq init
// alpharooq run server
php rooq server
لتجهيز المشروع لاول مره فانت تحتاج الي التعرف الي بعض الامور الهامه في النظام مثل في ملف app.php والتي ينتلق منها كل شئ مهم في المشروع
'key' => 'set_key'
كيفية اخراج مفتاح خاص بك من النظام .. يمكنك كتابه الامر التالي
هذا الامر سوف يقوم باخر نتيجه مثل 8d7f385e2dd12c2672a76d2467b0fef1
يمكنك استخدام هذه القيمه لتكون هي مفتاح التطبيق الخاص بك .. ليكون الكود بهذا الشكل
'key' => '8d7f385e2dd12c2672a76d2467b0fef1'
والان انت تحتاج الي اخراج ملفات العمل لكي تتمكن من انشاء مشروعك بنجاح لذلك نكتب الامر التالي وهو
سوف تلاحظ في مجلد العمل باخراج مجموعه من الملفات والمجلدات الاخري وانت الان جاهز للعمل علي نظامك الجديد
لتشغيل مشروعك بشكل مباشر من خلال rooq
اما اذا كنت سوف تقوم بتشغيل مشروعك من localhost .. فانت تحتاج الي تحرير ملف app.php واضافه عنوان URL الي القيمه url
'url' => 'http://localhost:3000/'
والان نتحدث عن ثاني اهم ملف في النظام وهو routes.php والذي سوف يكون بشكل التالي
// routes route::get('/',function(){ controller('index.def@home'); }); route::other('/'); route::run();
وهذا شكل الملف الافتراضي والذي يعمل علي المسار /
تمرير البيانات
هنا سوف نقوم بتمرير id للمستخدم ومن خلال الدخول علي المسار التالي /user/1
وهنا سوف يكون العرض id المستخدم
route::get('/user/(.*)',function($id){ echo 'user id' . $id; });
ويمكن تمرير البيانات الي المتحكم (controller) ويمكنك اجراء مجموعه اوامر علي هذه البيانات التي تم تمريرها الي المتحكم
route::get('/user/(.*)',function($id){ controller('index.def@home',[$id]); });
ويكون شكل الدالة (function) بهذا الشكل
public function home ($id) { echo $id;
الاجراء post
route::post('/login',function(){ controller('index.users@login'); });
استخدام other
وهنا نقوم باستخدام هذه الداله (function) هي تقوم بالرجوع الي القيمه المحددة كماهي في المثال الاول وهو يقوم بتحويل علي هذا المسار في حاله طلب مسار غير معروف لديك
نعمل مع العقل المدبر والمسؤل عن عرض البيانات والتحكم فيها والتواصل مع قواعد البيانات
إنشاء متحكم جديد (New Controller)
سوف يكون اسم الملف بهذا الشكل controller.users.php
ولكن بالداخل الملف يكون
class controllerUsers extends controller { ...
يكون اول حرف من اسم المتحكم كبير (capital)
استدعاء المتحكم
ويمكنك استدعاء المتحكم بكل سهولة من خلال الكود التالي
controller('index.users@get_info');
وهنا يكون اسم الداله (function) تكتب بعد علامة @ ويكتب قبل هذه العلامة اسم المتحكم .. كما في المثال السابق تمرير البيانات
controller('index.users@get_info',[1,'karim']);
شكل الداله (function) في المتحكم (controller)
public function get_info ($user_id,$username) { ...
لتحكم في model لا يختلف كثيرا عن التعامل مع المتحكم (controller) لكن هو يختلف في الوظيفة بشكل كبير .. وهي المحطة الاقرب للتعامل مع قواعد البيانات بشكل مباشر
الاستدعاء
model('index.users@login',['username','password']);
هنا نحن نقوم بالاتصال مع دالة (function) من المتحكم users لتسجيل الدخول وهنا نحن نقوم بارسال معلومات المستخدم الي الدالة
public function login ($user,$pass) { ...
ويمكنك استخدام هذه البيانات في اجراءات قواعد البيانات .
لكن المتحكم (controller) هو من يقوم باجراء جميع العمليات علي البيانات
لعرض صفحاتك بتنسيق html فالامر بسيط وانت لن تكون في حاجه الي استخدام محرك عرض (view engine)
مجلد المحتوي
name_app/views
ويمكنك انشاء ملف جديد ويكون بامتداد users.php
الامر بسيط
الاستدعاء
view('index.users');
يكتب اسم التطبيق ثم اسم الملف الموجود داخل مجلد views .. ويمكنك انشاء مجلدات اخري بشكل لا نهائي ولكن سوف تحتاج الي اضافه اسم المجلد
مثال
view('index.users.users'); view('index.users.edit');
index/views/users/user.php
, index/views/users/edit.php
تمرير البيانات
لتمرير البيانات من المتحكم الي صفحات العرض ننقل البيانات في شكل مصفوفة
view('index.users',[ 'name' => 'karim' ]);
<h1><?= $name ?></h1>
من الاكيد انت تحتاج الي ادراج كود خارجي ويكون علي شكل class فالامر بسيط ولكن من خلال المتحكم (controller) انت سوف تقوم بادراج المكتبة بالشكل التالي
class controllerUploads extends controller { public function __construct () { $this->UP = $this->library('UploadHandler'); } }
اين يمكن وضع ملف المكتبة UploadHandler
private/set_key/librarys/library.UploadHandler.php
ويجب ان يكون اسم الكلاس بهذا الشكل
class UploadHandler {}
استخدام construct
يمكنك استخدام داله __construct للكلاس المدرج لتكون البرامتيرات علي شكل مصفوفة (Array)
class controllerUser extends controller { public function __construct () { $this->UP = $this->library('nameClass',['karim',21]); } }
class nameClass { public function __construct ($arr) { echo 'Name: ' . $arr[0] . ' Age: ' . $arr[1]; } }
اذا كنت تعمل علي مشروع وسوف يكون متعدد اللغات فلا مشكله في الامر بسيط .. ولكن سوف تقوم بانشاء ملف باسم اللغه والتكن علي سبيل المثال ar.php
يحتوي الملف علي مصفوفة والتي تحتوي علي مفتاح والقيمة
apps/<APPNAME>/language/ar.php
مثال
return [ 'Username' => 'اسم المستخدم', ]
<h1><?= lang('Username') ?></h1>
تعمل اللغه علي حسب القيمة الموجودة داخل ملف app.php
/* # LANG -> Put the language file name */ 'lang' => 'ar',
'lang' => $_COOKIE['lang'],
يوجد مجموعه من الاوامر التي تعمل علي تسهيل العمل .. من اجل توفير الوقت
امر key
وهو يقوم بانشاء مفتاح جديد في حاله اذا كان ليس لديك اي مفتاح من قبل .. ويمكنك استخدام هذا المفتاح في التشفير ومهام اخري خاصه بالنظام
امر init
وهو المسؤول عن تهيئة بيئة العمل الخاصه بالنظام
امر server
وهنا تقوم بانشاء سيرفر لتشغيل المشروع
وهنا اذا كنت تريد الاتصال بمنفذ معين
امر mkapp
امر انشاء تطبيق جديد يمكنك اختيار اي اسم لتطبيقك الجديد
امر mkcontroller
وانشاء متحكم جديد من خلال الامر السابق ولكن نقوم بتحديد اسم التطبيق ثم اسم المتحكم
امر mkmodel
كذلك الأمر في انشاء نموذج جديد اسم التطبيق ثم اسم النموذج