نعم اخي شبية بية
نعم اخي شبية بية
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
الحمدلله عرفة ايه هي الداله وايه فيدتها
جزاكم الله خير اخواني
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
نعم هو متحكم كامل بالوحدات , لكن ينقصه خاصية العرض , اقصد بعد استقبال الطلب يتم انشاء الكائن ثم استدعاء الداله المطلوبه , يفترض ان يستدعي view الخاصة بهذه الداله او الصنف ويمرر اليها المتشغيرات العامه او نتيجة الداله.
بإضافة هذه الاسطر سيكون كامل الا انها تحتاج الى تنظيم أكثر .
آمل ان تكون الفكره وصلت الجميعكود PHP:
//After this line $mfile = $module_path.'/'.$module.$module_suffix; add
//Example = modules/example_module_view.php
$vfile = $module_path.'/'.$module.'_view'.$module_suffix;
//After this line call_user_func_array(array($object, $method), $param); //call method & pass parameters add
if(file_exists($vfile)) { // check is module view exists
require_once($vfile); //required modules/example_module_view.php
}
__________________
ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
الاتصال: daif@daif.net او جوال: 0556639884
الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
$_SERVER ليست داله, انما مصفوفوه تحتوى على عدة عناصر مثل PATH_INFO والذي يحتوى على مسار الصفحه الحالية .
__________________
ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
الاتصال: daif@daif.net او جوال: 0556639884
الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
جميل جداً .. ، بالنسبة لـ
فلا أعتقد أن هذه هي هالطريقة الصحيحة للتأكد من كون الـ method من النوع public ، الدالة is_callable تؤدي الغرض ..كود PHP:
$method{0}!=='_'
لا أزال بإنتظار حل للمشكلة التي عرضتها في ردي السابق ، كيف يمكن ان نتحقق من وجود عناصر الدالة المطلوبة .. ، مثلاً عن استدعاء الدالة a فانني سامرر لها عناصر عددها b ، كيف يمكن ان أتأكد من ان b = عدد عناصر الدالة ؟ السبب في ذلك هو محاولة ايجاد رسالة خطأ تظهر عند عدم تحقق هذا الشرط ..كود PHP:
is_callable(array($object, $method)
__________________
مدونة؟
- متعارف في php ان اي داله تبدأ بعلامة _ تكون داله خاصه ولا يمكن مناداتها من الخارج , هذا ما فعلته هنا قد يكون لديك داله تستخدمها داخل الصنف ولا تريد ان يتم استدعائها عبر الموقع على شكل رابط مثل http://localhost/module/_method/id, اذا عليك ان تجعلها تبدأ بشرطه سفلية _ .
- استخدم set_error_handler لتتبع أخطاء البرنامج, وعرضها في وضع التطوير .
__________________
ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
الاتصال: daif@daif.net او جوال: 0556639884
الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
جزاك الله خير اخي انا عرفة لما جربتها بس نسية وقلت داله
جزاك الله خير اخي الكريم
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
جزاك الله الف خير اخي ضيف
بي في حاجة ان لما اذهب لرابط ده
http://localhost/ARAb/index.php/
دية صفحة الاندكس بس كان بقول ده Error: Script not found
عديلة عليه بقي يطلع
بيطبع عادي الي في الكائن ولكن بيطبع Error: Method not found. في مش عارف اية اعمله يه
الصورة في المرفقات هتشرح ليك
وكمان انا بحاول اعمل ليه نظام البرمجة بيه والحمدلله لغيط دلوقتي مشي كويس معا اني لسة بداء النهاردة وشغال
حلو الحمدلله
جزاك الله خير اخي
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
__________________
Bruce - مدونة شديدة التخصص في PHP وتطبيقات الويب
جزاك الله خيرا اخي
انا كان قصدي اني لو طلبة الكلاس كان بيكتب كده
وانا عملة ميزة التحكم في الصفحة الرئيسية يعني لو مافي اي كلاس في المتصفح يكون الصفحة الرئيسية الي انت
اخترته يكون
كان طلبي انة بيطبع الكلاس مع الدوال مثلا كده
هنا لو انا طلبة من المتصفح كدهكود PHP:
class test
{
function test()
{
echo("class test");
}
function anyfunction()
{
echo"anyfunction";
}
}
index.php/test
هيطبع
class test
صح طيب لو انا طلبة كده
index.php/test/anyfunction
المفروض يطبع
anyfunction
لكن لا بيطبع
class testanyfunction
في مش عارف اعمل ليها اية ؟؟
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
الكلاس عندما تنشئ داخله دالة بنفس الاسم يتم طلبها بمجرد طلب الكلاس
الحل هو انشاء دالة بغير اسم الكلاس مثال indexكود PHP:
$myclass=new test;//سيطلب دالة باسم الكلاس ان وجدت
مبدئيا لدينا في ملف التحكم ثلاث متغيراتكود PHP:
class test
{
function index()
{
echo("this is index");
}
function anyfunction()
{
echo"anyfunction";
}
}
نعمل شرط اذا كان الرابط هكذا index.php/test يعني method فارغ اذا نعمل شرط للتحقق من ذلك واعطاء اسم method indexكود PHP:
list(,$object,$method,$id)= explode("/",$_SERVER['PATH_INFO'],4);
اما غير ذلك فان method يحمل قيمة اخرى مثلا هي anyfunction والرابط يكون index.php/test/anyfunctionكود PHP:
if( empty($method) ) $method="index"; // اذا لم يتم ادراج دالة في الرابط تكون الدالة اليا باسم index
وتستمر في التحقق حسب ما رأيته في الأمثلة السابقة
جزاك الله خيرا اخير الكريم وده بقي المتحكم
جزاك الله الف خير اخيكود PHP:
list($inde,$class,$meth,$id)=explode("/",$_SERVER['PATH_INFO'],4);
$id=explode("/",$id);
if(empty($meth))$meth="index";
if(empty($inde) and empty($class))
{
if(file_exists(CONTROLS_DIRS."/$HOST[Default].php"))
{
require_once(CONTROLS_DIRS."/$HOST[Default].php");
$object=new $HOST['Default'];
if(method_exists($object,$meth))
{
call_user_func_array(array($object,$meth),$id);
}else
{
echo"can not found your method";
}
}else
{
echo"can't found your class ";
}
}else
{
if(file_exists(CONTROLS_DIRS."/$class.php"))
{
require_once(CONTROLS_DIRS."/$class.php");
$object=new $class;
if(method_exists($object,$meth))
{
call_user_func_array(array($object,$meth),$id);
}
}else
{
echo"can't found your class ";
}
}
التعديل الأخير تم بواسطة محمدهلال ; 03-03-2009 الساعة 01:04 PM
__________________
ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
لطلب البرمجة فقط
helal-egypt@hotmail.com
حتى مع استخدام هذه الوسيلة فلايمكنني حتى الان التعمق الى درجة الوصول الى النتيجة ، هل من طرق أخرىاستخدم set_error_handler لتتبع أخطاء البرنامج, وعرضها في وضع التطوير
__________________
مدونة؟
ماهو المتحكم؟في مذا يفيد؟
__________________
راسلني