تطبيق class/ object جزء الثاني

الكاتب: Mr.Aziz

تاريخ النشر: 2022-10-08 10:48:43

مساء الخير

 

أخر مره عرفنا ماهو oop و تعلمنا عنه. وألان سوف نتعلم ماهو class و object مع التطبيق.

 

مثل ماقلت class يكون تابع له object مثلآ السيارات هو class و انواع هو مازدا و تويوتا و نيسان وهكذا.

 

الان سوف نشرح التطبيق العملي في php

 

الجميل في هذي اللغة لاتحتاج مكان معين لتبدء فيه. 

تستطيع بداء استخدام class في اي مكان بالصفحة حتى لو صفحة ثانيه. مثلآ صفحة خاصة بالكلاسات.

 

class يتم كتابة بهذي طريقة 

 

أولآ نستخدم class ثم القوسين

 

مثال:

 

 

ألان استخدمنا class هو يعتبر مفتاح الاساسي تبع class 

 

لازم نستخدمه اذا جينا نستخدم class تمام 

 

ثم أسم اي اسم تبع class مثلآ انا بختار السيارات.

 

الان نضع له متغيرات مع دوال مثلآ مانوع السيارات و اللون.

 

و ايضآ راح نستخدم set و get ليتم استدعاء القيمة التي بداخل المتغيرات.

 

بيكون بهذي طريقة

 

ألان يوجد له متغيرتين و معاه public؟

طيب  ليه مانكتب public  زي باقي اللغات!

 

في اللغة php لازم تعرف المتغير او الدالة نفسه هل هو خاص او عام 

اول شي نكتب public ثم اسم المتغير او الدالة مثل ماوضحت 

 

الان وضعت متغيرتين عباره عن public ليتم استخدامه الى خارج class 

 

طريقة استخدام الدالة بيكون بهذي طريقة 

 

 

الان وضعت دالة function بأسم set_name ثم وضعنا متغير في parameter هو $model 

 

بداخل الدالة وضعت كلمة محجوزه هي this هذا لما تضع هذي كلمة يخبرك اي من متغيرات تريد؟

نستدعي عن طريق public model 

ولكن $model داخل parameter هذا مجرد متغير يتم تمرير القيمة فقط.

 

الان نجي نستخدم get لكي نستدعي اي قيمة خلال وجوده بخارج الكلاس.

 

 

هنا نفس طريقة الدالة الى قبل ولكن بدون parameter 

و بداخل الدالة فقط reutrn الى المتغير التي متواجد في public 

 

الان نستخدم object  لكي يتم استدعاء class car التي عملناه 

 

تذكرو دائمآ class بدون object يعتبر لاشئ و فائدته يكاد يذكر بالاساس.

 

الان نستخدم new لكي يتم تعريف object جديد 

بيكون بهذي طريقة

 

 

ألان وضعت له متغير جديد بأسم nissan  

 

ثم = new هنا يتم انشاء object جديد تابع car() 

بكذا nissan اصبح object  و بأمكانك استدعاء اي متغير او دالة من خلال هذي المتغير.

 

بعد كذا نستخدم المتغير الاستدعاء الدالة set_name و بنفس الوقت نكتب نوع السياره هو Maxima 

 

و echo  يتم طباعة المتغير التي تم كتابتها في set_name  و نكتب المتغير ثم نستدعي get_name

 

بكذا يتم طباعة المتغير بدون اي مشاكل.

 

للعلم

$nissan = new (car( 

بهذي طريقة بامكانك أستخدامه في اي صفحة عندك بالويب بدون اي مشاكل.

 

بعد ماأنتهينا بيكون بهذي طريقة class مع object 

 

 

طيب وش رايكم نعمل طريقة صلاحيات !

 

نعمل دالة عباره عن مستخدم اذا كان أدمن أو لا 

 

في حال انه أدمن يتم ادخال الصفحة مخصصة الادمن فقط.

اذا كان عضو عادي لايمكن استخدام الصفحة.

 

بكل بساطة نعمل دالة بهذي طريقة

 

 

أولآ وضعت class بأسم user 

 

كذا بيكون class خاص بالمستخدمين فقط.

 

في حال المستخدم دخل الصفحة هو ادمن سوف يظهر له معلومات خاصة باللوحة التحكم

 

غير كذالك لن يظهر له اي شي 

 

ثم عملنا دالة خاصة هل هو ادمن! 

set ليتم استخدام القيمة  و get نستطيع استخدامه بالخارج الكلاس.

 

ثم بداخل الدالة فقط استدعيت المتغير user نفسه بحيث لو استخدمته 

يتم المقارنة بين المستخدم و الدالة 

 

كذا انتهينا 

خلنا نعمل صفحة ثانيه باسم admin على سبيل المثال

 

بيكون بهذي طريقة 

 

 

أولآ وضعت include_once ليتم استدعاء الصفحة التي متواجد فيه الكلاس 

 

طبعآ الكلاس موجود في index.php

 

ثم وضعت متغير جديد بأسم $IsADMIN ثم وضعت new user ليتم استدعاء الكلاس

التي عملناه قبل قليل.

 

و خلينا نتخيل انه هذا النتيجة في حال اي مستخدم بالعالم دخل بيظهر له بهذي طريقة.

 

 

زي ماتلاحظ فوق بالصفحة ظهرت لنا معلومات تبع اللوحة التحكم.

 

كيف نفعل الخاصية في حال المستخدم Admin او لا !

 

بيكون بهذي طريقة

 

 

 

 

أولآ استدعينا الدالتين الي هم get و set

 

set نضع له متغير هو user في حال المستخدم لايوجد له صلاحيات الادمن لن يظهر له الصفحة.

 

.نضع الشرط زي ماتعلمنا المره السابقة 

 

if() تمام 

ثم نضع اذا كان هذا ادمن صحيح؟ او لا 

 

$IsADMIN  راح يكون لبناء على الدالة التي عملناه بداخل الكلاس 

مثل ماوضعنا القيمة هو admin 

 

في حال المستخدم admin راح يدخل و غير ذالك لا.

 

 

زي ماتلاحظ الان وضعت بهذي طريقة 

هل set_isAdmin يساوي user ؟ اذا يتساوى سوف يظهر له الصفحة خاصه بالادمن 

 

اذا وضعت علامة تعجب != يعني هذا المستخدم له صلاحيات ادمن 

 

سوف يظهر له صفحة لوحة التحكم

 

مثل كذا 

 

زي ماهو واضح بالصوره 

 

الان وضعت get_isadmin != "user"  تعني القيمة التي متواجده في set_IS_admin هو user

لايساوي "user" ؟ سوف يظهر هذي الصفحة لانه المستخدم له صلاحيات

 

وبس هذا وضع class  و ممكن يكون شوي معقد بس لما تستخدم session بيسهل عليك واجد.

 

أشوفكم على خير