السلام عليكم ورحمة الله وبركاتة
أحياناً أحاول ان افهم سير فانكشن ما , وخصوصاً ان كانت تحتوي على recursion
بعد البحث وجدت أَضافة تضاف للأباتشي , تمكنك من معرفة سير البرنامج هذه الأضافة تسمي
xdebug
إليكم شرح طريقة تركيبها
1- قم بإنشاء ملف بإسم info.php وضعة في الدليل الرئيسي للسيرفر وضع هذا الكود بداخل الملف
فائدة هذا الملف , هو معرفة إصدار نسخة ال php
أدخل على رابط الملف http://localhost/info.php
مثال ستجد في بدايتة PHP Version 5.2.6 لاحظ ان 5.2.6 ستتغير حسب النسخة التي لديك
2- قم بتنزيل ملف ال dll المتوافق معي نسخة ال php الخاصة بك من هنا http://xdebug.org/download.php
3- بعد التحميل قم بنقل الملف إلى فولدر بإسم ext داخل فولدر إسمه php5 ستجد هذا الفولدر داخل مكان تنصيب السيرفر , إن كنت تستخدم appserv سيكون المسار كالاتي
C:\appserv\php5\ext
4- أفتح ملف php.ini يمكنك ان تجدة بأن تكت في run اسم الملف php.ini قم بإضافة السطور الأتية في اخرة
كود PHP:
[B][COLOR="Red"]
zend_extension_ts = "C:/appserv/php5/ext/php_xdebug-2.0.3-5.2.5.dll"
xdebug.auto_trace=On
xdebug.trace_output_dir=c:\phpTrace[/COLOR][/B]
حيث ان zend_extension_ts تضع له قيمة تمثل مكان الملف اللذي قمت بتحميلة
و xdebug.trace_output_dir تضع له قيمة تمثل المكان اللذي تريد ان تذهب له بيانات تتبع البرنامج
هذا كل شىء , قم بإعادة تشغيل الاباتشي
الان افتح ملف info.php ستجد سطر مثل هذا في أسفل اول جدول
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans
الأن يمكنك أستخدام البرنامج بواسطة اضافة سطرين بداخل الملف اللذي تود ان تتبع خطوات تنفيذة
كود PHP:
xdebug_start_trace('C:\appserv\phpTrace\fac.txt');
حيث C:\appserv\phpTrace\fac.txt هو الملف اللذي ستحفظ فيه بيانات تتبع البرنامج
و لاتنسي وضع في نهاية الملف ليوقف التتبع
كود PHP:
xdebug_stop_trace();
الان عند تشغيل البرنامج , أفتح ملف التتبع
ستجد ثلاث صفوف من البيانات
اولهم من اليسار هو مدة التنفيذ الكلية
ثانية , الذاكرة المستخدمة
ثالثهم , الدالة المستخدمة ومسار الملف , ورقمة السطر
خالص ودي , واتمني ان يكون الشرح مفهوم
للإستزادة
http://devzone.zend.com/1135/tracing-php-applications-with-xdebug/