حازم خالد » هل سأفقد أكوادي عند الأنتقال من PHP4 إلى PHP5
مارس
27
2007

هل سأفقد أكوادي عند الأنتقال من PHP4 إلى PHP5

أبداً!! بل هي مجرد بعض التغيرات البسيطة التي غالباً لن تؤثر على أكوادك أو ما قمت بكتابته من قبل.
في هذا المقال سوف أقوم بتوضيح الفروق (من حيث الكود) حتى أعمل على سرفر PHP5 بدون أي مشاكل.

اولاً أحب أن أنبه أنه لا يمكن الأستمرار بالعمل تحت php4 وجهة نظر
أعلم أنه يدورببالك قول وما هي الأسباب ؟؟
الأسباب كثيرة ولكن لأن ليس هذا هو الموضوع فيمكنك فقط الأطلاع على التحديثات بـ PHP4 و التحديثات بـ PHP5 وستلاحظ أن php4 انتى أصداراتها الحقيقية (أقصد ما تم التطوير وأضافة الجديد للغة بشكل ملحوظ) ينتهي عند الأصدار 4.3.0 اما والتي تم أصدارها في أخر عام 2002 اما بعد ذلك فستجد أنه FixBug أو تحديث للمكتبات المرفقة مع PHP او أنك ستجد تحديث للـPEAR أو PECL !!!
ولا نريد الخوض في هذا الموضوع أكثر من هذا فـPHP5 بقوتها وأمكانياتها تجبرنا على أستخدمها وسأطرح موضوع أخر لمناقشة هذه النقطة.

الأن أكوادي على ستعمل بدون مشاكل مع PHP5
أولاً : هو ما يسمى بـold_function و cfunction وهي (على حسب ما فهمت من php.net) أنها الدوال القديمة الخاصة بـPHP/FI2 أو أنها أسلوب الدوال لهذه الأصدارة !! على العموم انا وجدت مثال كان زائر وضعه !!

old_function name $param1, $param2, ..., $paramn ( code;);
eg.:
old_function eq $param, $param(
if($param1==$param2)
echo "equal";
else
echo "not equal";
return ($param1==$param2);
);
eq(1,2);

ثانياًً : تطوير خرج بعض الدوال مثل خرج الدالتين strrpos و strripos (لا تخف لا يوجد دوال أخرى بها فروق) وهو تعديل تم من الأصدارة 4.0b3 وستلاحظ هذا في صفحة الدوال بالمنوال. وأيضاً دالة ip2long أصبحت تعطي false في حالة أخال الـIP خطأ.

ثالثاً : تطوير في شكل التبليغ بالأخطاء والتنبيهات لأن php4 كانت فقيرة في وصف للأخطاء أو للتحذيرات خاصتاً مقارنتاً بـphp5.

مثلاُ : الدالة array_merge إن لم يكن المدخل دالة فكانت لا تصدر خرج أم في PHP5 أصبحت تعطي تحذير E_WARNING .
صدقني لن تلاحظ غير انك لن تقابل دالة في المنوال وتقف وتقول عفواً PHP5 فقط !

ملحوظة طبعاً هناك تغيرات تعتبر جزرية في OOP ولكنها بسيطه ولكن OOP المكتوبة على PHP4 تعمل ولا يوجد بها أدنى مشكلة !! وليس هذا فقط بل يمكنك توريث كائن مكتوب PHP4 لكائن مكتوب PHP5.

بالتوفيق

شاهد أيضاً:

  1. من هنا وهناك PHP5 (تحديث)
  2. السباق العربي ومشكلة php5
  3. دورة PHP بالقاهرة

في PHP | الأوسمة:,

6 تعليقات على “هل سأفقد أكوادي عند الأنتقال من PHP4 إلى PHP5”

  • kimo قال:

    بارك الله فيك وزادك علما ونفعا للناس وشد حيلك واعملنا كلاسس نشتغل بيها علىphp5
    زى class mysqlكدا
    وكتاب يشرح كيفيه المعامله مع php5
    واحنا معاك حنشتغل علطول php5
    انا عن نفسى عامل السيرفر بتاع الجهاز عندى php5 لكن نفسى ابتدى اكتب php5
    وعلى فكره ياجماعه انت ممكن تبتدى بموضوع انك تحول سيرفر جهازك من php4الى php5مبدئيا لحد لما تشوف ايه الجديد فى تغير كودك php4الى php5 العمليه سهله لا تقلقوا وجزاك الله خيرا يا اخ حازم على هذا المجهود وافادك الله

  • محمد-تامر قال:

    جزاك الله خيرا يا ابوالعيال على الموضوعات النافعة
    بالنسبة ل PHP5 أظن المفروض كنا اشتغلنا بيها من زمان
    ده الإصدار السادس قرب ينزل
    مش لازم نبقى متأخرين طول عمرنا
    المهم أحد أهم ما جاء في PHP5 موضوع Access modifiers
    انا صراحة مش عارف ترجمتها ايه بس هي اللي بتحدد مين يستعمل
    ايه في الكود عندك ..وده طبعا كان عيب كبير في PHP4 وكان مخليها بعيد عن
    الOOP بكتير…يعني عندك بدل مكنت تكتب var للمتغير وخلاص . لأ انت تحدد مين اللي يشوف ويتعامل معاه وبالمثل مع الدوال
    وهما سهلين خالص Public,Private,Protected
    Public: المتغير أو الداله يمكن التعامل معمهم من اي مكان داخل البرنامج
    Private: ………………………….. من داخل الكلاس فقط
    Protected : ………………………من داخل الكلاس أو الكلاسات الوارثة من هذا الكلاس.
    يعني حاجة زي كده..وممكن اكون ناسي أو غلطان في حاجة ..
    وطبعا ده ساعد في تطبيق مبادئ ال MVC وهي فصل الكود عن العرض عن التعامل مع قواعد البيانات.
    دمتم بعافية

  • شكراً يا كيمو :)

    محمد-تامر
    جميل جداً الردود المفيدة والي بتخلي الموضوع يكون من العيار الثقيل :D

    طبعاً انا وضحت ان في تغيرات كتير في الOOP بين php4 و php5 ولكني لم أذكرها
    ومن أهما زي ما أنت قولت الـAccess modifiers والي ترجمتها على حد علمي مستويات التحكم !!
    توضيح : Private لا بنتقل مع التوريث
    و Public تعادل var تماماً
    وأضافة لا يمكن التعامل مع صفة أو وظيفة داخل الكائن method بأسلوب static إلا إن كان الـAccess modifier اتاح بانه static هكذا :-

    class hallo
    {
    public static world()
    {
    print "Hallo World!!";
    }
    }
    hallo :: world();

    شكراً تامر << ياريت تكلمني في أقرب وقت

  • محمد-تامر قال:

    انا مقلتش ان الPrivate بينتقل مع التوريث
    لكن الProtected بينتقل على ما افتكر

  • MaaSTaaR قال:

    السلام عليكم …

    جزاك الله خيراً اخي حازم، بالطبع PHP5 لديها الكثير من المميزات الهامه خصوصاً ما تم اضافته من تطوير لـ OOP فيها، اعتقد ان ما يعيق اغلب المبرمجين على كتابة او تحويل برامجهم من PHP4 إلى PHP5 هي السيرفرات، هل هناك عدد كبير من السيرفرات حدّثوا إلى PHP5 او يشغلونها بجانب PHP4، اذا كان كذلك اعتقد ان هذا سوف يسهل من عملية الانتقال. اما اذا كان العكس فـ لن يتمكن مجموعه من المستخدمين من استخدام برامجنا لان سيرفراتهم لا تحتوي على PHP5 :-)

أضف تعليق



حازم خالد تعمل على ورد بريس المعرب | تصميم TheBuckmaker.com