| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| PHP6 ، نظرة نحو المستقبل ..! الحمدلله ، والصلاة والسلام على خير عباد الله ، محمد بن عبدالله ، وعلى آله وصحبه ومن والاه ، وبعد ؛ سنتحدث اليوم عن الإضافات التي يدرسها ويعمل عليها فريق PHP لتوفيرها في إصدار PHP الجديد ، PHP6 .. هناك الكثير جداً من الإضافات والتخصيصات والتعديلات .. سنبدأ بذكرها واحدة تلو الأخرى ، وسأعمل جاهداً بإذن الله تعالى على تخصيص هذا الموضوع من حيث الردود بتزويده بأحدث المعلومات التي أصل إليها حول تلك الإضافات والتعديلات .. ملاحظة: أتمنى أن يعلم الجميع الهدف من هذا الموضوع، فالهدف هو تمهيد برمجتنا نحو برمجة متناسبة مع الإصدارات الجديدة ، إذا توافقت برمجتنا من الآن مع PHP6 ، عندها لن نقلق من تعطّل سكربتاتنا في الإصدار الجديد. وكذلك كنظرة مستقبلية متفائلة نحو التطويرات القادمة ..نبدأ بسم الله الرحمن الرحيم .. ![]() وداعاً Register Globals كلنا نعلم مدى اعتماد الأحافير البي إتش باوية على خاصية Register Globals = On ، والتي يعود أصلها إلى PHP3 .. وكذلك نعلم مدى خطورة تفعيل خاصية Register Globals .. Register Globals هي الخاصية التي تعمل على تسجيل المصفوفات الرئيسية : كود: $_GET $_POST $_FILES $_COOKIE $_REQUEST $_SERVER $_ENV $_SESSION ![]() هذه الخاصية تم إلغاؤها في PHP6 ، حيث أنك لن تجدها حتى في خيارات PHP في ملف php.ini ولن تستطيع تفعيلها .. والسبب هو الخطر الكبير الذي تؤدي إليه ، المصدر - المانيوال : اقتباس:
في PHP6 سوف لن تستطيع عزيزي المبرمج الوصول إلى المتغيرات الكبرى التي تحمل الأسماء HTTP_*_VARS ، عليك باستخدام الصيغ التي تم اعتمادها منذ زمن ، مثل COOKIE_$ و SESSION_$ و POST_$ و GET_$ ، القسم السابق يوضّح بعض المعلومات حول هذا الموضوع .. وداعاً Magic Quotes أيضاً نقطة لصالحنا ، خاصية Magic Quotes ستودعنا في PHP6 ، وهي الخاصية التي تعمل على تجاهل النصوص المرسلة في PHP .. أي أن عملها مطابق لدالة addslashes إلا أنها تعمل بشكل تلقائي على النصوص المرسلة عبر النماذج . وهذا قد يسبب الكثير من المشاكل للمبرمجين . هذه الخاصية لن تجدها في ملف php.ini أيضاً ، ولن تتمكن من تفعيلها في PHP6 .. كذلك استناداً للمانيوال ( PHP: Magic Quotes - Manual ) : اقتباس:
وداعاً للوضع الآمن Safe Mode هاا ؟! السيف مود سيختفي أيضاً ؟؟؟ نعم سيختفي من PHP6 طبقاً لما ورد في المانيوال : اقتباس:
يا للمصيبة ! لغة PHP بدأت بالتدهور أمنياً .. !! هذا ما قد تظنه للوهلة الاولى ، لكن مطوري لغة PHP يعلمون تماماً ما يفعلون ، فقد أوضحوا أن safe_mode لم يكن يعمل بالشكل المرغوب للحماية الكاملة ، فهو أصلح للمبتدئين لحماية سيرفراتهم .. أما الآن ، فلا داعٍ له ، يمكن للجميع استخدام open_basedir للحد من المجلدات التي يصل لها مبرمج السكربت .. وكذلك منع الدوال التي يرغب بمنعها .. لا تزال الحرية متاحة كالسابق في المنع والحماية . وداعاً مكتبة Freetype 1 و GD 1 لا داعي للكلام الكثير هنا ، مكتبة Freetype 1 و GD 1 ، مكتبتان قديمتان جداً جداً وسيتم استئصالها من نسخة PHP .. دالة ifsetor دالة ifsetor الجديدة تفيد المبرمجين في تحديد قيم افتراضية للمتغيرات ، في السابق كنا نستخدم: كود PHP: كود PHP: من الجدير بالذكر ، أن الاجتماع أفضى إلى عدم اعتماد هذه الخاصية ، على أغلب الأحوال لن ترى ifsetor في PHP6 .. إذاً ، لماذا خصصت لها قسم من الموضوع ؟ اعتمد مطورو PHP أسلوب آخر لهذه العملية ، كود PHP: هذه الصيغة تتيح مجالاً أكبر من العمليات ، دون محدودية التحكم في ifsetor .. المثال بعد التطوير: كود PHP: ![]() ربما نرى كمبرمجين أن صيغة ifsetor أسهل ، لكن الطريقة هذه معتمدة من قبل وأوسع وأشمل .. إذا كنت ترغب باعتماد ifsetor خاصتك ، يمكنك صنع دالتك الخاصة: كود PHP: كثيراً ما يحتاج مبرمجو لغات الويب أو الديكستوب إلى القفز إلى سطر معين في برنامجهم ، وفي ظل هذه الاحتياجات ، توفرت هذه الكلمات المحجوزة في بعض لغات البرمجة، فمثلاً : كود: print 'hello'; goto myLine; print 'welcome'; myLine: print 'This is my line'; هذه الصيغة لن تكون مدعومة في PHP6 ، نظراً لارتباطها بأمور سيئة مع لغات برمجة أخرى ! وحيث أن عملها مختلف في هذه اللغة الواسعة ، تم توسيع كلمة break لتتمكن من الانتقال إلى أسطر معينة كذلك ... وهنا مثال لاستخدام break الموسعة في PHP6 : كود PHP: ..foreach الآن تتعامل مع المصفوفات متعددة الأبعاد في السابق كنا نقوم بالآتي: كود PHP: ما رأيك بهذا: كود PHP: ![]() وداعاً {} ، و [] تتقدم ! أنعم النظر في المثال الآتي: كود PHP: نستخدم [] لنفس الغرض كذلك ، كود PHP: في الوقت ذاته ، يطوّر فريق PHP المحددات [] لتعمل بشكل رهيب ، الخطوة هذه غير مسبوقة وستسهّل علينا الكثير الكثير ، وأنا أعني ما أقول . الآن هذا المحدد سيعمل عمل دالتي array_slice, substr ، هذا يعني أنه يمكنك تناول جزءاً من متغير نصي أو مصفوفة دون التطرق إلى الدوال السابقة .. كيف ؟ كود PHP: يمكن التحديد برقمين 1,2 مثلاً ، يمكن كذلك وضع أرقام سالبة ، ستعمل تماماً كعمل array_slice إن كانت مصفوفة ، و substr إن كان نصاً ، وإن لم تحدد نقطة البداية ، سيبدأ من 0 . بهذه الشروط ، سيسلك المتغير النصي بالشكل التالي مسلكاً جديداً : كود PHP: تعديل سلوك Microtime الافتراضي إذا كنت من مستخدمي دالة microtime في لغة PHP على المدى السابق ، ستدرك فوراً الفرق بين microtime في الإصدارات السابقة وهذا الإصدار . منذ أ، وجدت دالة microtime كانت تعيد نتيجة نصية String تحوي أجزاء الثانية متبوعة بمسافة ، ثم الوقت بنسق Unix Timestamp ، مثال: كود: 0.75000200 1211460710 كود PHP: فالمثال التالي في PHP5 مشابه للمثال السابق : كود PHP: كود: microtime() = microtime(true) ( طيب واللي استخدم طريقة explode وجمع الجزئين ؟!!! يعني كل السكربتات اللي تستخدمه رح تخرب ؟!!! ) دعونا ننفذ الكود نفسه في PHP6 : كود PHP: كود: 1211460710.75 لكن عند الجمع مع العنصر 1 ستظهر رسالة خطأ من نوع Notice ، لأن العنصر الثاني غير موجود .. هذه الرسالة لن تؤثر في عمل السكربت ، عموماً يجب علينا تغيير طريقتنا في التعامل مع هذه الدالة من الآن بتفعيل الباراميتر بالقيمة true حتى تعمل بكفاء في PHP5 و PHP6 .. ووداعاً PHP4 .. وداعاً <% من منا لم يستخدم <% في سكربتاتنا ؟ << كلنا ..!كلنا درسنا في بداية مسيرتنا البرمجية أن <% و %> تعملان عمل <?php و ?> .. هذا إن كانت مفعلة في خيارات php.ini .. لكني شخصياً لم أحتجها يوماً من الأيام ، هذه الصيغة تم إسقاطها من لغة PHP .. مع الاحتفاظ بـ <? وبقية الوسوم .. ![]() النتيجة: صيغة وسوم ASP لم تعد متاحة لكتابة سكربتات PHP .. إضافة APC إلى النسخة الرسمية حسب رغبات مستخدمي لغة PHP ، قام فريق PHP بتضمين نظام الكاش المعروف APC في ملفات النسخة الرسمية من الإصدار الجديد PHP6 . هذه المكتبة ستكون معطلة افتراضياً ، لكنها ستتوافر ضمنياً . قارئ/كاتب XML في النسخة الرسمية وتدخل مكتبة XMLReader و XMLWriter في توزيعة PHP الجديدة رسمياً ، وستكون مفعلة في الوضع الافتراضي في PHP6 . ستسهّل هاتان المكتبتان الكثير من التعاملات مع ملفات XML من كتابة وقراءة .. ![]() Ereg ستخرج إلى PECL قام فريق PHP بتحويل ereg إلى امتداد Extension ، وبوجود مكتبة PCRE والتي سوف لن تكون قابلة للتعطيل ، يمكن الاستغناء عن امتداد ereg ونقله إلى مكتبة PECL للامتدادات .. ![]() عليك عزيزي المبرمج الانتقال فوراً للبرمجة باستخدام مكتبة PCRE بدوال preg .. فهي التي نثق بوجودها مستقبلاً في إصدارات PHP . ويتّضح أن هناك امتداد جديد للتعامل مع التعابير القياسية ، غير PCRE و ereg ، بالاعتماد على ICU .. لكني لا أعلم عنه شيئاً حتى الآن . الخاتمة Conclusion لست بصدد إنهاء الموضوع بشكل كلي ، فالتطويرات والتغييرات في PHP6 ليست مقتصرة على ما ذكرت هنا، وإنما هي تغييرات كثيرة هذا ما استطعت نقله منها حتى الآن ، وحتى أضمن قراءة الأعضاء لمعظم هذه الميزات الجديدة والتعديلات ، لم أرغب بالتأخر في طرح الموضوع .. لم أذكر التغييرات في OO مع أنها ليست بالقليلة ، ولم أتطرق للـ Unicode ولا Namespace لأن الأخ عبدالله عيد تحدّث عنها في إحدى المواضيع ، فلم أرغب بتكرارها .. من يجد لديه بعض المعلومات غير المذكورة ، ومن يرى أنه لم يفهم إحدى الخصائص والتغييرات فليبادر بالرد بالاستفسار أو الإضافة مشكوراً .. ![]() الموضوع سيتجدد كلما توفر الوقت بإذن الله تعالى .. وسيبقى مفتوحاً للحديث والنقاش .. أطيب التحيات، أشرف السمهوري
__________________ [هل] سيتحقق الحلم؟ هذا ما ستخبرنا به الأيام :) .. التعديل الأخير تم بواسطة : أشرف السمهوري بتاريخ 24-05-2008 الساعة 09:58 AM. | |||||
|
| |||||
|
والله شغل عدل الله يعطيك العافيه خيوو السمهوري
__________________ سبحان الله وبحمده احسب البيج رانك والباك لينكس لموقعك ==== دليلك للشراء من الانترنت ==== مهـنــدسـ كـويــتــــيـ .. WwW.Q8iEnG.NeT ==== تبي مساعدة بـ C++?? ==== | |||||
|
| |||||
|
وداعاً Register Globals حسب علمي المتواضع فاستخدام هذه الدوال شائع جدا ماهو البديل وهل سيكون سهل الاستخدام ؟؟ وداعاً للمتغيرات الكبيرة الطويلة HTTP_*_VARS ماذا تقصد بالصيغ التي تم اعتمادها منذ زمن ؟؟ سأعود بإذن الله تعالى لقراءة بقية الموضوع والتساؤل حول كل نقطة فأني أجهل كثيرا مما تتكلم عنه كيف كان حتى افهم كيف سيكون اللهم علمنا ماينفعنا وانفعنا بما علمتنا وزدنا علما . شكرا لك على هذه الموضوع القيم والذي يجعلنا متابعين لتطور اللغة .
__________________ 100 صقر !! يومياتي في تعلم php .. أرحب بالمبتدئين لنتعلم معا والمحترفين ليقدموا النصح والتوجيه .. . سبحان الله وبحمده عدد خلقه .. ورضا نفسه .. وزنة عرشه .. ومداد كلماته . | |||||
|
| |||||
|
الله يجزاك خير اخوي على هالموضوع المرتب الرائع .
__________________ موقع مبرّمج - zawyte لا إله إلا الله ,,, محمد رسول الله ,,, أستغفر الله , احفظ الله يحفظك . www.tdwenty.com Domain Is 4 Sale | fahad1ad2 @ hotmail.com | |||||
|
| |||||
|
مشاء الله موضوع اكثر من رائع يا اشرف جزاك الله كل خيرا
__________________ شركة بروجرم فورمي لخدمات الويب www.prog4me.com Linux@prog4me.com Tech@prog4me.com | |||||
|
| |||||
| شاعر_الظلام ، ff5006 ، Prog4Me.Com ، الفايق ، IrIsH ، ahmeds_link : شكراً لمروركم وتواجدكم في الموضوع .. جزيتم خيراً لكلماتكم الطيبة والتي لا يسعني أن أرد عليها واحدة واحدة :$ .. SaharRose : اقتباس:
ثم أن استخدام القائمة في الموضوع ، وهي: كود: $_GET $_POST $_FILES $_COOKIE $_REQUEST $_SERVER $_ENV $_SESSION في النسخ القديمة ، وحتى PHP5 ، هناك خيار يدعى register_globals في ملف php.ini ، عند تفعيله ، سيتمكن المبرمج من الوصول إلى عناصر هذه المصفوفات دون ذكر اسم المصفوفة ، فمثلاً: كود PHP: كود PHP: للمزيد حول Register Globals: PHP: Using Register Globals - Manual للمزيد حول مشاكلها: ط§ظ„ظ…ط´ط±ظˆط¹ - طھط·ظˆظٹط± ط§ظ„ظ…ظˆط§ظ‚ط¹ » ط§ظ„ط¨ط±ظ…ط¬ط© ط§ظ„ط¢ظ…ظ†ط© ظپظٹ ظ„ط؛ط© Declare Variables … PHP استخدام المصفوفات المذكورة سيبقى كما هو وهي بالتأكيد شائعة جداً ، أتمنى أن تكون الفكرة قد وصلت .. فالذي سيختفي هو خيار Register Globals ، وليست المصفوفات في الأعلى .. اقتباس:
كود PHP: كود PHP: أتمنى أن تكون قد اتضحت الفكرة .. تحياتي، أشرف السمهوري
__________________ [هل] سيتحقق الحلم؟ هذا ما ستخبرنا به الأيام :) .. | |||||
|
| |||||
|
شكراً لك علىة المعلومات القيمة ، إن شاء الله يكون موضوعك دليل للإنتقال إلى php6. بالنسبة إلى Register Globals هل أفهم من كلامك أن مجموعة المتغيرات التي ذكرتها مثل: كود PHP: | |||||
|
| |||||
|
لي عوده يااشرف عشان اكمل قراءه الموضوع واتمنى منك المزيد من هذه المواضيع
__________________ انتظروا المفاجاه (سكربت ......... الاول من نوعه ) ----- شركه ارت نت برمجه (العاب - مواقع - ويندوز ابلكيشين ) ( اداره للمواقع - حمايه للسيرفيرات) (كشف ثغرات المواقع والسكربتات ) | |||||
|
| |||||
|
شغل قوي يا ابو الشوش PHP6 راح تقضي على ASP.NET قضاء القط على الفأر !! ![]() لكن لدي استفسار بسيط هل PHP6 مطروحة للتحميل ؟!! انا دوريا اراجع الموقع ولم اجد الا الاصدار PHP 5.2.6 فكيف تطبق برامجك عليها !!!
__________________ قريبا PHPBoys.net مرتع مبرمجين PHP تم الانتهاء من برمجة وكالة حياة برس للانباء ala_shorbaji@hotmail.com | |||||
|
| |||||
| ahmed100 : المتغيرات التي تحمل المصفوفات الكبرى Global Arrays ستصبح الطريقة الوحيدة للوصول إلى المتغيرات الخارجية، كما قلت في ردي السابق ، لن تتمكن من الوصول إلى عنصر خارجي مرسل من فورم مثلاً بهذه الطريقة : username$ ، لأن هذه الطريقة لا تفعّل إلا بـ Register Globals ، حتى تصل الفكرة للجميع ، في السابق إذا أرسلنا عن طريق نموذج HTML أو Form حقل باسم username وبطريقة POST ، كنا نستخدمه في ملف PHP بالطرق التالية: كود PHP: يمكن التحايل على السكربت وعمل extract لـ _POST ، هذا لمن يحب إعادة الثغرات لسكربته .. كود PHP: ![]() artint.net : شكراً لمرورك عبدالرحمن ، وان شاء الله ترجع وتستفيد من الموضوع ![]() النحات : هههه لا أريد الحديث مرة أخرى حول ASP.NET ، سأدعها لأصحابها ..PHP6 لم تنته بعد ، وليست مطروحة للتحميل .. إذا كنت تريد مشاهدة الـ Source Code أو الحصول على نسخ أولية ومباشرة من إصدارات PHP ، شاهد هذه الصفحة: PHP Snapshots بمجرد صدور النسخة ستكون قابلة للتحميل للجميع إن شاء الله ، عندها ستشاهدها هنا : PHP: Downloads تحياتي، أشرف السمهوري
__________________ [هل] سيتحقق الحلم؟ هذا ما ستخبرنا به الأيام :) .. | |||||
|
| |||||
|
نعم واضح جدا وأرى بأن الطريقة الجديدة ستكون أسهل ما سبق ![]() جزاك الله خيرا لي عودة بإذن الله تعالى .
__________________ 100 صقر !! يومياتي في تعلم php .. أرحب بالمبتدئين لنتعلم معا والمحترفين ليقدموا النصح والتوجيه .. . سبحان الله وبحمده عدد خلقه .. ورضا نفسه .. وزنة عرشه .. ومداد كلماته . | |||||
|
| |||||
|
هذه قائمة بماسيتم عمله في النسخة 6 أعتقد أن إزالة الـ Magic Quotes هي تغيير جذري في اللغة ، عموماً من الجيد أنني قمت بمعرفة هذه المعلومة الآن لأنني كنت أبرمج سابقاً بدون إستخدام الدالتين addslashes ، stripslashes ، أعتقد أنني الآن ملزم بذلك . أشكرك أخي أشرف على جهدك في كتابة هذا الموضوع المتميز . التعديل الأخير تم بواسطة : dev11 بتاريخ 24-05-2008 الساعة 08:24 PM. | |||||
|
| |||||
|
اخي الكريم اشرف ... أشكرك شكرا جزيلا لما تقوم به من جهود في سبيل تقدم وتطور المبرمج العربي أسأل الله عز وجل لك التوفيق والسداد .
__________________ ::::::::::::::::::: لمراسلتي ::::::::::::::::::: :::::::::::: abdvvv (at) gmail.com :::::::::::: بطاقات إسلامية | |||||
|
| |||||
| SaharRose : وإياك ، بانتظار عودتك ..dev11 : العفو ، شكراً لإضافتك ، وجيد أنك انتبهت لهذا التغيير قبل فوات الأوان .. الحارث : العفو ، هذا أقل ما يمكن بذله في سبيل تطوير أنفسنا ومبرمجينا العرب ..تحياتي، أشرف السمهوري
__________________ [هل] سيتحقق الحلم؟ هذا ما ستخبرنا به الأيام :) .. | |||||
|
| |||||
|
امتى بقى هانشتغل على الشغل العالي دا خصوصا بتاعه الاراي جامده جدا
__________________ انتظروا المفاجاه (سكربت ......... الاول من نوعه ) ----- شركه ارت نت برمجه (العاب - مواقع - ويندوز ابلكيشين ) ( اداره للمواقع - حمايه للسيرفيرات) (كشف ثغرات المواقع والسكربتات ) | |||||
|
| |||||
|
شكرا جزيلا اخي الحبيب على معلوماتك القيمة والله يجزاك الف خير يا سمهوري
__________________ برمجة PHP & ASP.NET2 بأحترافية - تصميم بأبداع - أستضافة بتميز للمراسلة : http://kassab.arabform.com/ العضوية يسمتخدمها شخصان | |||||
|