استفسار في تقنية OOP في PHP
- حذف بواسطة المستخدم
- مجهول
- 2015-08-01T14:48:22+00:00
عليك أن تُفكر كمبرمج وتجد حلول لما تريد لن أكتب كامل الحل حتى تستطيع تطوير مهاراتك فيما بعد هذا كأئن بسيط غير معلومات القاعدة وتأكد من وجود قاعدة البيانات
// معلومات قاعدة البيانات
$database = new Mysqli("localhost","root","passowrd","users");
// ترميز البيانات utf-8
$database->set_charset("utf-8");
// إنشاء جدول المُتسخدمين
$database->query("
CREATE TABLE `users`(
u_name varchar(15) NOT NULL,
u_password varchar(34) NOT NULL
)CHARACTER SET UTF8
");
class user{
/**
* إنشاء مُستخدم جديد *
@param string userName : إسم المُستخدم
@param string userPassword : كلمة المرور
@return : bool
*/
static function newUser($userName,$userPassword){
global $database;
// حماية المُخلات
$userName = htmlentities($userName,ENT_QUOTES);
$userPassword = htmlentities($userPassword,ENT_QUOTES);
return (bool)($database->query("insert into `users` VALUES ('$userName','$userPassword')"));
}
/**
* تسجيل الدخول *
@param string userName : إسم المُستخدم
@param string userPassword : كلمة المرور
@return : bool
**/
static function login($userName,$userPassword){
global $database;
// حماية المُخلات
$userName = htmlentities($userName,ENT_QUOTES);
$userPassword = htmlentities($userPassword,ENT_QUOTES);
return (bool)(($q = $database->query("SELECT u_name from `users` where u_name = '$userName' AND u_password = '$userPassword'")) && $q->num_rows);
}
}
للتجربة يُمكنك إنشاء مُستخدم هكذا
user::newUser("test","password");
ثم تجربة وجودية المعلومات من خلال الدالة
user::login("test","password");
ستخرج true في حالة الوجودية وfalse إن لم تكن موجودة
أشياء قم بها بنفسك للتتمرن
تاكد من المعلومات قبل الادخال حتى لاتتكرر
كلمة المرور ستكون معروضة حاول أن تخفيها
لايوجد حفظ للمعلومات إبحث عن الجلسات session وحاول تطبيقها
ويمكن إضافة المزيد أتمنى لك التوفيق.
- حذف بواسطة المستخدم
إن كنت لاتفهم آلية العمل فإن الشرح يحتاج درسًا مطولًا إقرأء بعض الدروس لذلك
هذا قد يكون جيد :
وعليكم السلام
عزيزي هيكليه العمل علي oop لا تحتاج عمل كثير او شروحات عديده ولكن فقط معرفه الاساسيات والمنهجيه
الكلاس سيحتوي المتغيرات والدوال ليتكون اوبجكت متكامل
اذا كنت تعرف كيف التعامل مع المتغيرات والدوال لن تجد صعوبه في بناء كلاس وهنا سياتي الفرق بالتعاريف او الخصوصيه
مثلا بوبلك قبل المتغير او الداله تعني ان الاستخدام عام اما اذا برايفت الاستخدام بداخل الكلاس فقط
عذرا علي الرد البسيط لي عوده ان شاءلله في وقت لاحق
- حذف بواسطة المستخدم
اهلاً بك عزيزي وعذراً علي التاخير
الاستدعاء يكون من خلال دوال include
وتقوم بانشاء الاوبجكت الخاص بالكلاس
أخي أريد أن أعرف كيف أستدعي دالة موجودة داخل الكلاس في ملف آخر،
اوضح الاخ @supercoder مشكوراً كيف الاستدعاء .. وساحاول المساهم بذلك .. الشي الذي طبعته انت صحيح في myfunction ساضع لك مثال في الاسفل ولكن اريد اوضح مساله فط عندما يتم اضافه عباره static لا يمكن طلب الداله بعد الانشاء ولكن سيتم الطلب كالتالي Myclass::myfunction() كما شرح الاخ @supercoder .. وعدا ذلك سيتكون "->"
كمثال بسيط
// TestObject.class.php
class TestObject {
private $name;
public function __construct() {
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
// test.php
include 'file.class.php';
$object = new TestObject();
$object->setName("Test");
function printTest($obj) {
print $obj->getName();
}
اتمنى ان التنسيق يساعد علي عرض الكود
ويمكن الاطلاع علي
http://php.net/manual/en/la...
حيث ان namespace ستساهم بتوسيع مفهوم oop الخاص بالمشروع بشكل اشمل
بالتوفيق للجميع ..
عزيزي @walid.khaffou ضع اي سوال دون خجل .. وان شاءلله ساحاول الاجابه
مجتمع مخصص للغة الـ PHP