| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| ][! الإنتقال الأمثل إلى PHP5 - ][ (نصائح و استراتيجيات ّ][ المرحلة الانتقالية بين php4 و php5 نصائح للانتقال الأمثل إلى php5 ![]() تجد هنا نسخة منسقة من الموضوع بتنسيق PDF (118 kb) مقدمة : صدرت النسخة الخامسة من php بشكل رسمي مؤخراً ، و بدأت معها رحلة جديدة و مشوار انتقالي قد يكلف الكثير من الوقت الشيء الذي يعني الكثير من المال بالنسبة للبعض ، هذا الموضوع هو توثيق لثلاث تجارب مختلفة حول نفس الموضوع ، الأولى كانت الانتقال من Perl إلى php ، الثانية الانتقال من php3 إلى php4 و الأخيرة كانت التحول المثير إلى بيئة الـ Dot Net ، لعل البيئات تختلف بشكل متباين لكن الحالة تكاد تكون واحدة حيث في كل مره كانت مجموعة من الأسئلة تطرح بشكل متكرر ، هل نستمر في استخدام التقنية القديمة ؟ ، متى سوف يتوفر الدعم الكامل للتقنية الجديدة ؟ ، هل نحتاج إلى تعلم شيء جديد بالنسبة للتقنية الجديدة أم أن ما تعلمناه سابقاً يمكن تطبيقه كما هو في التقنية الجديدة ... و الكثير من الأسئلة الأخرى المشابهة ، من خلال هذا الموضوع سوف أحاول بإذن الله جاهداً أن أوضح بعض المسارات التي يمكن إتباعها في حالات مختلفة حتى يكون الانتقال إلى php5 سهل و سلس قدر الإمكان . وضع مشابه: في بداية سنة 2000 و مع صدور النسخة الرابعة من php ، ظهرت مشكلة مشابهة للوضع الحالي و هي انتقال مجتمع php من الإصدارة الثالثة إلى الرابعة ، و إلى حد ما يمكن أن نقول أن تلك الحالة كانت أبسط من المشكلة الحالية ، بسبب التوافق الكبير بين النسختين الثالثة و الرابعة حيث أن أغلب البرامج التي طورت على php3 لم تحتاج إلى الكثير من التعديلات لتعمل بشكل صحيح على php4 ، كذلك الأمر الآن مع php4 و php5 ، فبرغم من أن النسخة php5 تحتوي على اختلافات جوهرية بعضها في طريقة كتابة الجمل Syntax و أخرى في بعض الدوال على رأسها دوال مكتبة MySQL التي استبدلت بـ MySQLi و الكثير من الاختلافات الأخرى ألا أن عملية الانتقال إلى php5 ليست بتلك الصعوبة لكنها قد تحتاج إلى بعض الجهد نظراً لكمية الأشياء الجديدة في هذه النسخة ! . العملية ليست سهلة و ليست صعبة أيضاً ، فالمفاهيم البرمجية الجديدة التي استحدثت في php5 غالبها متعلق بجانب البرمجة بالكائنات ، و التغيرات التي حصلت بالنسبة للـ MySQL واضحة و ليست معقدة ، أما ما أستحدث من أشياء مثل SimpleXML و SQLite فإن لك الحرية في تعلمها و استخدامها أو عدم تعلمها ولا استخدامها ، و بشكل عام فإن كل ما تعرفه في php4 لا يزال صحيحاً في php5 و يمكن تطبيقه ، مع بعض الاختلافات في بعض الأشياء ! . و لتوضيح الحقيقة فقد أجاب Zeev عن سؤال حول توافق php5 مع النسخ السابقة فكان رده، (لا، الوظائف الرئيسية سوف تظل كما هي، لكن لأن php5 أضافت العديد من مميزات البرمجة بالكائنات OOP الجديدة و الكثير من الأدوات، قد يسبب هذا الشيء مشاكل لبعض البرامج القديمة ) . المشاكل المتوقعة عند الانتقال إلى php5: لنناقش الموضوع من زاوية المبرمجين و هم الأكثر احتكاكاً باللغة و الأكثر تأثراً بالتعديلات ( الأمر أقل كلفة بالنسبة لمستخدمي البرامج الجاهزة و مستضيفي الواقع )، سوف يواجه المبرمجين للانتقال إلى php5 عدة مشاكل أبرزها: • الحاجة إلى تعلم مفاهيم جديدة تماماً بالنسبة للغة php و أغلبها تتعلق بموضوع البرمجة بالكائنات ( من الأشياء الجديدة في هذا المجال abstract، interface، final method, final class... الخ ) و المواضيع المتعلقة بالتعامل مع الأخطاء Error Handling حيث أضيفت ميزة الـ Exception و غير ذلك من المميزات الجديدة تماماً في php . • في حالة كان المبرمج يريد البدء بمشروع جديد، هل يقوم بتنفيذه على php4 أو php5 ؟ . فإن بدأ مشروعه الجديد على php5 فسوف يواجه مشكلة أن عدد المستضيفين الداعمين لـ php5 في هذا الوقت بسيط ، و قد لا يملك أغلب العملاء ملقم يحتوي على php5 ، و إن بدأ المشروع على php4 فتكون المشكلة أنه بعد فترة وجيزة سوف يصبح مشروعه قديم و يحتاج إلى تطوير ! . • ما هو وضع المشاريع الحالية ؟ هل نقوم بتحويلها إلى php5 أم نستمر في تطويرها باستخدام php4 . المشاكل السابقة هي الأكثر بروزاً من بين المشاكل الأخرى ، لنأخذ كل مشكلة منها و نقدم حلول تساعد على تجاوزها بسهولة ، لكن قبل ذلك دعونا نتصور السيناريو المحتمل لدعم مستضيفي المواقع لـ php5 خلال فترة 1-3 أشهر لأن ذلك سوف يساعدنا في اتخاذ القرارات بشكل صائب . السيناريو المحتمل: نظراً للتسابق الكبير بين مستضيفي المواقع ، فإنه يحتمل و بشكل كبير أن نرى أغلب مستضيفي المواقع يقدموا دعم لـ php5 بشكل متوازي مع php4 ، يؤيد هذا الرأي وجود عدد من مستضيفي المواقع بدأ بالفعل بتقديم عروض تدعم php5 منذ الإصدارة RC1 و أثناء كتابة هذه المقالة وجدنا عدد لا بأس به من مستضيفي المواقع مع دعم php5 . العملية أشبه ما تكون بتوازن بين المبرمجين و مستضيفي المواقع ، ففي حالة تقديم حلول كثيرة تتطلب php5 سوف يضطر المستضيفين إلى توفير php5 بأسرع وقت ممكن على ملقماتهم ، ولكن لأننا نتوقع أن البرامج المكتوبة بـ php5 لن تظهر بشكل كثيف إلا بعد شهرين من الآن ( و بالأخص تلك البرامج الكبيرة ذات الشهرة الواسعة ) فنتوقع أيضاً أن الدعم الكامل لـ php5 على الملقمات لن يكون في أقل من 2-3 أشهر ، و الله أعلم . لنعود مره أخرى إلى المشاكل الثلاثة التي تحدثنا عنها و نتخذ القرارات المناسبة لتجاوزها . مشكلة تعلم المفاهيم الجديدة : الكثير من المفاهيم البرمجية أضيفت إلى php5 و لم تكن موجودة من قبل و هذا أدى إلى إجراء مجموعة من التغييرات في الـ Syntax (طريقة الكتابة) ، أضف إلى هذا و ذاك مجموعة من المميزات الجديدة ، إذاً ماهو الحل لتجاوز هذه العقبة ؟ . الحل الأمثل هو تعلم هذه الأشياء !!! لكنك لست بحاجة إلى تعلم كل شيء من الصفر فأنت تعرف مسبقاً الكثير عن php لذلك فلا تضع وقتك و مالك بشراء أي كتاب عن php5 إلا في حالة كان الكتاب موجه للمبرمجين السابقين بلغة php و أحد أفضل هذه الكتب هو كتاب Upgrading to php5 من شركة Oreilly ، الكتاب مكون من 300 صفحة تقريباً ، قيمته 30$ و يمكن الحصول على نسخة الكترونية من الكتاب عن طريق الاشتراك في موقع http://safari.oreilly.com . لكن لنفرض أنك لا تريد شراء هذا الكتاب ولا أي كتاب آخر ، هذه ثلاث خطوات سريعة قد تساعدك على وضع نفسك في المسار الصحيح بسرعة و بدون هدر الكثير من الوقت : 1. قم بإلقاء نظرة على كل الأشياء الجديدة في php5 ، أماكن كثيرة يمكنك أن تجد فيها مثل هذه المعلومات أحدها هو العنوان التالي و الذي يحتوي على فصل من أحد الكتب التي تتحدث عن php5 : http://www.zend.com/php5/andi-book-excerpt.php 2. لتبدأ بتعلم الأشياء الجديدة التي أضيفت للغة ذاتها مثل الإضافات الجديدة الخاصة بالبرمجة بالكائنات OOP ، التعامل مع الأخطاء ، و الطريقة الجديدة للتكرارات . 3. يفترض أنك من خلال الخطوة الأولى قد أخذت فكرة عامة عن جميع الأشياء التي تغيرت و الأشياء الجديدة ، و في الخطوة الثانية انتهيت من تعلم المستجدات الخاصة باللغة ، في هذه الخطوة قم بتعلم الأشياء الأخرى الجديدة و التي تحتاجها فقط ، مثلاً قد لا تحتاج إلى التعامل مع XML في الوقت الحالي لذلك لا تتعلم ما يدعى بـ SimpleXML لكن في المقابل أنت بحاجة إلى الربط مع قواعد بيانات MySQL فأقرأ حول ما تغير في هذا الجزء بالتحديد ، و ليكن أول مرجع لك للبحث عن إجابات حول أحد المواضيع هو دليل اللغة (الجديد!) ، ثم ابحث في الانترنت إذا لم تجد الإجابة في الدليل . بإتباع هذه الثلاث خطوات سوف تقلص وقت التعلم بشكل كبير و لن تحتاج إلى بذل جهد كبير للانتقال إلى php5 . مشكلة المشاريع الجديدة : هل نبرمج المشاريع الجديدة على php5 ؟ أم نبرمجها الآن على php4 ثم نقوم بتحديثها بعد ذلك لتعمل على php5 ؟! . إذا كنا قد اتفقنا على السيناريو المحتمل لدعم php5 على ملقمات مستضيفي المواقع خلال فترة بين 2 – 3 أشهر ، فنستطيع أن نقول أن الخيار الأفضل هو البدء بتطوير البرنامج على php5 ، خصوصاً إذا كانت الفترة المتوقعة لإنجاز المشروع تقارب الشهر أو تزيد عليه ، بحيث أن موعد صدور البرنامج سوف يكون مقارب للفترة التي يعمم فيها php5 على أغلب الملقمات . مشكلة المشاريع الحالية : عملية تحويل php4 إلى php5 ليست أكثر من مسألة وقت خصوصاً إذا كان المبرمج ( أو فريق البرمجة ) قد استوعب التغيرات الجديدة في php5 ، لكن هل نحول أو لا نحول ؟!! الإجابة معقدة ، خصوصاً أن المشاريع الحالية ترتبط بعوامل قد تؤثر في اتخاذ القرار بالتحول إلى النسخة الجديدة أو لا من هذه العوامل على سبيل المثال العملاء و الحاجة إلى الدعم الفني أو وجود عقود ملزمة من طرفك بتقديم تحديثات لمدة معينة بحيث يكون التحول إلى php5 مخل بالعقد ، في هذه الحالة فالقرار بيدك ، و الحل الأمثل أنت تحدده ، بإمكانك أن تمضي في مسارين أحدهما تقوم فيه بمتابعة التحديثات الضرورية الخاصة بالنسخة القديمة من برنامجك و التي تعمل على php4 و في نفس الوقت تعمل بمسار آخر لإصدار نسخة جديدة تعمل على php5 . مهما كان اختيارك فلابد أن تعرف أنه يتوقع خلال فترة قد لا تزيد عن السنة أو تزيد قليلاً ( الله أعلم مجرد توقع مبني على ما حدث سابقاً مع php3 ) فإن php4 قد تختفي من معظم الملقمات لتحل php5 كخيار وحيد . قبل الإغلاق .. أحببت قبل أن أختم الموضوع أن أشير إلى نقطة مهمة وهي أنه ليس بالضرورة أن يكون كل ما كتب لـ php4 غير متوافق مع php5 أو العكس ، بل يمكن الوصول إلى برنامج يعمل على كل منهما ، لكن لك أن تتخيل الجهد الذي يتطلبه مثل هذا العمل ! ، و قد قمت بتجربة تشغيل بعض البرامج التي تعمل بشكل جيد على php4 منها ما هو خاص و بعضها مشهور و متداول مثل php-nuke، phpMyAdmin ، vB و XOOP ، عدد كبير من البرامج عمل بشكل طبيعي مع بعض المشاكل البسيطة ( أغلب المشاكل كانت تتعلق بكلمة var و استبدالها بـ protected ، public ، أو private ) وفي المقابل توقفت بعض لبرامج عن العمل بشكل كامل ، سبب هذا التفاوت غالباً ما يعود إلى هيكل البرنامج و طريقة برمجته ، قم بتجربة برامجك على php5 فقد يحالفك الحظ و تكون برامجك متوافقة بشكل كامل مع php5 ! أتمنى لك التوفيق ... ------------------------------------------------------------------------------- تحياتي / مازن عبد الله مليباري
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
|
يتبع بإذن الله .. استراتيجيات عملية لتهيئة بيئة عمل تدعم php5 و php4 بشكل متوازي
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
|
تغيب ويوم تطلع تطلع مع قمر 15 حفظك الله ورعاك وبانتظار الجزء الثاني
__________________ مؤسسة المهمات البرمجية 00966507585887 0507585887 www.mr-php.com.sa www.mr-php.com | |||||
|
| |||||
| اقتباس:
و جزاك الله خير ... أدعي لي إن الامور تكون مستتبه و ماراح أنقطع ان شاء الله
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
| اقتباس:
حيا الله منسق مجموعة جدة الجزء الثاني بعد غد بإذن الله انتظرونا ..
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
|
يا شييييييخ .. ما اقول الا .. كيف حالك !! اخوي مازن تابع والله يوفقك تقبل تحياتي .. اخوك نواف
__________________ قال عليه الصلاة والسلام:"ليس منا من دعا إلى عصبية وليس منا من قاتل على عصبية وليس منا من مات على عصبية" # مشاريع: - الفوائد .. خلاصة العلم والمعرفة alfawaed.net العمل بصمت - nawaf.hareeri.net | |||||
|
| |||||
| اقتباس:
لازال بالإمكان التعامل مع الـ MySQL extension القديم ، لكن تمت اضافة extension جديد بإسم MySQLi ( و الـ I هي الحرف الأول من improved ، ingenious, interface, incompatible أو incomplete ) أهم مايمكن ذكره عن MySQLi : - التوافق مع MySQL 4.1 و مايتبعها من إصدارات . - لـ MySQLi واجهتين للتعامل معها الاولى هي الواجهة المعتمدة على الدوال (procedural) بحيث يمكن تستخدم الأوامر بالطريقة التالية كود PHP: أما الواجهة الأخرى فهي الـ object-oriented interface كود PHP: تستحق MySQLi الكثير من الكلام و بإذن الله أخصص لها موضوع نفصل ... شاكر لك سؤال أخي المحارب و بارك فيك ...زرت موقعك ووجدتك أنزلت أحد كتب الـ PHP ما رأيك لو تقوم بإنزال كتاب Upgrading to PHP 5 سوف يكون مفيداً جداً للكثيرين ![]() ----------------------------------- هذا رابط مفيد حول MySQLi http://www.zend.com/php5/articles/php5-mysqli.php
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
| اقتباس:
-------------------------------------------------------- اقتباس:
ان شاء الله الأهل كلهم باحسن حال شاكر لك دعائك و ربنا يوفقك ----------------------------------------------------- اقتباس:
و الكثير قريباً ان شاء الله
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
|
السلام عليكم ورحمه الله وبركاته جزاك الله خيرا أخي علي الموضوع الرائع وجعله في ميزان حسناتك يوم القيامة ان شاء الله الحمد لله انني جديد في البرمجه بال php فالبدء بتعلم php5 ربما يكون اسهل من التحديث تقبل تحياتي علي الموضوع الرائع وبانتظار الجديد
__________________ أحمد أبو الدهب كلما أدبني الدهر.. أراني نقص عقلي وكلما إزددت علما .. زادني علما بجهلي معا لدعم ال php في مصر www.phpegypt.com | |||||
|
| |||||
| اقتباس:
و أسأل الله لك التوفيق في تعلمك ...
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
| اقتباس: الله يبشرك بالجنة و يجعل عملك في ميزان حسناتك ( صورة وردة )
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
| |||||
|
شكرا اخي مازن على الموضوع الأكثر من رائع و اليكم هذا الكتاب ايضا PHP5 & MYSQL http://www.the-soft.net/download/238
__________________ -{Only God Can Judge Me}- القانون فوق الجميع و الجميع يموت بالجوع | |||||
|
| |||||
|
عندي سؤال ثاني يا مازن تحملنا ![]() قريت في الكتاب عن خاصية prepared statements لقيت الكود هذا كود PHP: ![]() ياليت تتكرم وتشرحه لنا
__________________ www.fmlog.com | |||||
|
| |||||
|
أخي المحارب أعتذر عن التأخر في الرد ما رأيك لو تسمح لي بتأجيل الرد على سؤالك حتى أكمل موضوع كنت قد بداته بالفعل حول الـ prepared statements ، و لعله ينتهي خلال هذا الأسبوع بإذن الله .... بخصوص الموضوع الملحق التابع لهذا الموضوع هو جاهز ، لكنه يحتاج إلى إعادة صياغة و تنقيح و لم أجد وقتاً لذلك .. هنا توجد المسودة الاولى من الموضوع و الوضوع بعنوان : تهيئة بيئة عمل تدعم php4 و php5 بشكل متوازي استراتيجيات عملية للإنتقال الامثل إلى php5
__________________ مدونتي الشخصية : http://www.mazen.ws عن البرمجة و تطوير المواقع و علوم الحاسب ماسنجر : desclub@hotmail.com بريد الكتروني : mazen@mazen.ws " لا املك اشتراكات في سوالف " | |||||
|
![]() |
| أدوات الموضوع | |
| |