سؤال

لقد بدأت في كتابة بعض التطبيقات في PHP ، وأصبحت أكثر دراية باللغة. أخبرني أحدهم عن CakePhP ، و Codeigniter. أردت أن أحصل على فهم أفضل لكيفية مساعدتي هذه ، وما إذا كان الأمر يستحق قضاء الوقت لتعلم إطار عمل؟

هل كانت مفيدة؟

المحلول

ما هي فوائد استخدام أطر MVC PHP؟

حسنًا ، هناك العديد من الفوائد لاستخدام أطر عمل PHP ، دعنا نرى بعض الفوائد الرئيسية لاستخدامها.

  1. تتبع أطر عمل PHP هذه بعض نمط التصميم ، لذلك عند استخدام إطار عمل ، يجب عليك اتباع اتفاقية الترميز الخاصة بهم ، مما يجعل الكود نظيفًا وقابل للتمديد للأغراض المستقبلية.
  2. أطر عمل PHP الشهيرة مثل CakePhP و Codeigniter و Zend Framework و Symfony اتبع نمط تصميم وحدة التحكم في عرض النموذج (MVC) الذي يفصل بين منطق العمل عن واجهة المستخدم ، مما يجعل منظف التعليمات البرمجي وقابل للتمديد.
  3. كما يمكن للجميع تخمينه ، تحتوي هذه الأطر على الكثير من المكتبات لتسهيل عملك. على سبيل المثال: للتحقق من صحة نموذج ، لا يتعين عليك كتابة أكبر قدر من التعليمات البرمجية التي يتعين عليك القيام بها في سيناريو الترميز العادي (دون استخدام إطار عمل) ، فقط بضعة أسطر من التعليمات البرمجية التي تستدعي المكتبة عادة ما تكون كافية لذلك.
  4. أثناء العمل في مشروع كبير في فريق ما ، سيكون إطار عمل MVC PHP أداة رائعة للتطوير حيث يمكنك تعيين مطور لتطوير جزء واحد من وحدة مطور وسيكون التكامل سهلاً للغاية لهذه الوحدات النمطية المتقدمة في المستوى النهائي .
  5. تساعدك أطر عمل MVC هذه حقًا على تطوير المشروع بسرعة ، إذا كنت تعرف إطارًا جيدًا ، فلن تقلق أبدًا بشأن الموعد النهائي للمشروع.
  6. تستخدم معظم أطر عمل MVC هذه نهج URL الواضح مما يجعل مشروع SEO ودود.

التحقق من مقالة - سلعة

نصائح أخرى

فلسفتي هي أنه يجب عليك فقط استخدام شيء ما عندما تحل حاجة لديك حاليًا.

هناك ميل حقيقي ، لا سيما في هذا المجال ، لاستخدام إطار عمل من أجل استخدام واحد أو لأنك تشعر أنك يجب أن تستخدم شيئًا ما. أنا أؤيد مثل هذه الممارسات. أيضًا أطراف أعتقد أن لديها أقصى قيمة عند القيام بالأشياء بالطريقة الصعبة ، لذا لديك فهم جيد للمشكلات التي تواجهها وكيف يمكن أن يساعدك الإطار في هذه الحالة. اختيار الإطار يعتمد على الموقف.

هذا كل ما يقال ، نمط MVC مع تطبيقات الويب مفيد ، لذلك من المؤكد أنه لن يؤذيك لتعلم واحد على الأقل. كنت التمسك بإطار الحد الأدنى إلى حد ما. codeigniter الينابيع إلى الذهن هنا.

أخيرًا ، الخطر الآخر مع الأطر هو أنه يمكن أن يكون غازيًا لدرجة أنك لم تعد تقوم بعمل PHP ، أو تقوم بعمل CakePhp أو Symfony أو أي شيء آخر. هذه ليست بالضرورة مشكلة ولكن الخطر في ذلك الغازي للغاية هو أنك لا تحصل على أساس جيد في PHP ، وإذا كنت تريد تغييره ، فسيكون من الصعب جدًا ألا تتمكن أبدًا من القيام بذلك.

واحدة من الامتيازات الرائعة لأطر PHP هي أنها تقلل من إعادة اختراع العجلة في عدد كبير من احتياجات تطبيق الويب الشائعة. تعد مشكلات الأمان ، والتعامل مع الاستثناءات الرشيقة ، وعناوين URL المريحة ، وإعادة استخدام التعليمات البرمجية عبر موقعك اعتبارات عالمية إلى حد ما.

قد يكون من الأسهل التعرف على أدوات الإطار ثم معرفة ما إذا كنت تريد أن تأخذ نظام MVC الكامل الذي يدعمه. لهذه الغاية ، أقترح التعرف على إطار Zend. تعمل ZF كمكتبة للفئات التي يمكن تنفيذها بشكل فردي لاستخدامات معينة-أي شيء من الأمان إلى بحث Lucene-ولكنه يحتوي على فصول ، عند استخدامها معًا ، تنفذ نموذج MVC بالكامل.

أريد فقط أن أقول عن تجربتي الخاصة في البرمجة ، ما زلت مبتدئًا رغم ذلك

  1. أولاً باستخدام Framework ، ستعتاد على نمط/قاعدة الترميز الخاصة بهم ، وهو أمر جيد لأن معظم الإطار يفكر بشدة في كيفية كتابة التعليمات البرمجية الخاصة بهم. باختصار أحصل على أسلوب أفضل ورمز أنظف
  2. عادةً ما يأتي الإطار مع العديد من الترسانة (المكونات الإضافية و / أو المكتبة) ، والتي يمكنك العثور عليها في الإنترنت ، وهذا سيقلل من وقت الترميز الخاص بك ، ووقت القطع الضائع. باختصار ، يمكنك جعل الوقت الثمين في التفكير في عملية العمل
  3. مع استخدام إطار عمل مفتوح المصدر ، هناك مبرمج آخر يعرف بالفعل وربما يتقن الإطار ، ثم يمكنك التعاون بسهولة مع الآخرين.
  4. في الحقيقة ، أنا لست مبرمجًا منظمًا جيدًا ، لكن قبل أن أستخدم بعض الإطار المفتوح المصدر. ربما مثلي ستحصل على المزيد من التنظيم

هذا كل ما يمكنني مشاركته معك الآن ، لست جيدًا في الكتابة باللغة الإنجليزية ، آسف لذلك. لكن النقطة هي أنني أوصيك باستخدام الإطار

صديق ترميز سعيد.

أعتقد أنه بلا شك استثمار جيد لقضاء الوقت لتعلم إطار عمل PHP. لأحد ، سوف يعلمك كيف تعامل شخص ما مع مشكلة تعليم الإطار ، وكيفية تنظيم رمز PHP الخاص بك ، وكيفية التعامل مع أشياء مثل الجلسات والوصول إلى قاعدة البيانات ... إلخ ...

بالنسبة للجزء الأكبر ، إذا كنت جادًا في تطوير تطبيقات الويب ، فستحتاج إلى استخدام إطار من نوع ما بدلاً من كتابة إطارك الخاص من نقطة الصفر.

بعض الأسباب التي تجعلك لا يجب أن تكتب إطارك الخاص:

  1. أنت تعيد اختراع العجلة ، عندما يتم ذلك عدة مرات بالفعل.
  2. من غير المحتمل أن تقوم بعمل أفضل من إطار عمل مفتوح المصدر ، والذي تم اختباره وتكراره من قبل العديد من المطورين.
  3. ستقضي كل وقتك في كتابة وتصحيح الإطار الخاص بك أكثر مما ستنفقه على إنشاء تطبيقك فعليًا.

لذا نعم ، تعلم بعض الأطر والعثور على واحدة تناسبك!

Dicilder: أنا لست مبرمجًا لـ PHP ولم أكن قد كتبت تطبيق PHP أبدًا. من ناحية أخرى ، قمت بتثبيت وتخصيص واستخدام الكثير من CMSS PHP لموقعي وعربات التسوق.

في رأيي يعاني PHP من مشاكل خطيرة. الأكبر هو أن "الإطار" يبدو أنه كلمة أجنبية لجميع المشاريع الكبيرة والنجاحات الناجحة تقريبًا. يميل رمز PHP إلى أن يصبح سلطة السباغيتي بسرعة: Spaghetti HTML مختلطة مع رمز السباغيتي و SQL Spaghetti.

Oscommerce ، واحدة من أنجح عربة التسوق على الإطلاق ، غير قابلة للحفظ. وهذا ينطبق أيضا الغالبية العظمى من مشاريع PHP.

ما إذا كان يجب عليك استخدام إطار عمل لك ، أقول نعم! بالتااكيد! بغض النظر عن حجم مشروعك ، فإن استخدام إطار عمل على شبكة الإنترنت يساعدك على ترتيب رمزك وكتابة الرمز الرئيسي.

كما أنه يؤثر على نمط البرمجة الخاص بك حتى عندما لا تستخدم إطار عمل.

استخدام MVC-Framework سيجعل تطورك أسهل. خاصة التطبيقات المتعلقة بقاعدة البيانات. إنه يوفر لك بنية مجلد واضحة والكثير من مكتبات التعليمات البرمجية. أود أن أقترح عليك البدء من codeigniter.

تعد الأطر رائعة عندما تحصل على فريق من المطورين الذين يعملون في نفس المشروع. تقوم وحدة تحكم MVC بدمج مبرمج Designer + بشكل جميل. ومع ذلك ، فإن إنشاء عناصر "تشبه الإطار" و "إعادة اختراع" العجلة ليس فكرة سيئة. إذا كنت تعمل على مشروع ضخم ، فمن الأفضل أن تنزل والقذرة مع التعليمات البرمجية الخاصة بك وتخصيص كل شيء لتناسب احتياجاتك. ستصبح منتجًا أقوى حيث سيتم تطويره بالكامل للمشروع.

المنشور التالي هو استجابة لخيط تم إغلاقه على الفور حيث كنت أكتب إجابتي لإعداد منشور على: https://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework . تم إغلاق الخيط وفي التعليقات تم وضع رابط يوجهه إلى هنا ، لذلك سأحاول الإجابة على سؤاله هنا. في اقتباسات أدناه ما كنت على وشك تقديمه:

"اسمحوا لي أن أوصي بـ Joomla! لك ولعملتك. في آخر صاحب عمل ، اضطررت إلى التقاط PHP (ليس لدي أي خبرة سابقة معها) ، وبعد حوالي شهر ونصف من القيام ببعض الترميز اليدوي لليد PHP ، لقد تم تكليفي بترميز مكون Joomla! من شأنه أن يقدم مقاطع فيديو للمستخدمين. اضطررت أيضًا إلى إنشاء واجهة خلفية تتيح للمسؤولين غير التقنيين تصنيف أو تحرير أو حذف وما إلى ذلك. الصورة المصغرة لهم ، إلخ.

الآن للحصول على نموذج أولي عاملة لذلك ، استغرق الأمر حوالي شهرين (كنت متدربًا في ذلك الوقت وأعمل فقط من 20 إلى 24 ساعة في الأسبوع ، لذلك إذا كان لديك الكثير من تجربة PHP بالإضافة إلى تجربة مع منهجية تطوير MVC ، ربما يمكنك الحصول على نموذج أولي يعمل بشكل أسرع مني). "

الآن رداً على OP لهذا الموضوع: إن قضاء الوقت لتعلم الإطار أمر يستحق العناء بالتأكيد (لم أره هنا حتى رسالتي ، لذا سأقوله مرة أخرى: للحصول Joomla!).

بعض فوائد تعلم إطار عمل (واحد مفتوح المصدر مثل Joomla!):

  • مجتمع ضخم من الأشخاص الذين يمكنهم المساعدة في الإجابة على أسئلتك (إلى جانب Stackoverflow ؛ لول)
  • الوصول إلى جميع التعليمات البرمجية المصدر ، بحيث يمكنك تخصيصه كما تريد.
  • الكثير من المكونات الإضافية الحرة (والمدفوعة) من الجهات الخارجية لتعزيز الوظائف.
  • الكثير من البرامج التعليمية.
  • تهتم الأطر بأداء الكثير من المهام الدنيوية تلقائيًا.

في إشارة إلى الرصاصة الرابعة: Joomla! يعتني بأشياء لك مثل إدارة اتصال قاعدة البيانات وما إلى ذلك بحيث لا تضطر إلى إزعاج إنشاء جميع الوظائف المخصصة الخاصة بك للاتصال بقاعدة بيانات MySQL الخاصة بك أو إرجاع أنواع مختلفة من نتائج قاعدة البيانات (مثل سجل واحد ، النتيجة الأولى لـ First سجل ، قائمة بالسجلات ، وما إلى ذلك) ، يمكنك ببساطة إجراء مكالمات إلى رسائلهم. واجهة برمجة تطبيقات Joomla! متوفرة بشكل علني على الويب في موقعهم: http://api.joomla.org/

على أي حال ، نأمل أن يساعد هذا في تقديم أي شخص آخر يتساءل عن الأطر (وخاصة الأطر المرتبطة بـ PHP).

إطار عمل لي هو أداة جيدة لتسريرك وتوفير وقتك من أجلك فقط لا تريد قضاء بعض الوقت لإعادة ذلك ، وليس لأنك تريد توفير الوقت الذي لا تعرف كم هو . سوف تدفع ثمنها إذا قمت بذلك.

بالنسبة لي ، يكون الإطار جيدًا إذا كنت بالفعل مبرمجًا خبرة ولديك لمسة أو تشعر أنك تعرف كيف يعمل الإطار تقريبًا أدناه (فقط ليس بالضبط) فرز مثل تبسيط هذا الإطار. ثم الإطار هو سيارة صريحة بالنسبة لك ولن يتسبب لك الألم إذا كنت ترغب في القيام بشيء لا يجهده الإطار أو شيء غير عادي أو شيء غريب آخر.

إذا لم تقم بذلك ، فمن الأفضل أن تحاول حل مشكلتك باستخدام PHP القديم البسيط وتمر بألم لعب اللغة بإصبعك ، والتعرف على ممارسة البرمجة الجيدة والنموذج والنمط أولاً. وإلا ، فستكون أحد هؤلاء الخريجين الجدد الذين ينضمون إلى فريق كبير ، ويعمل مشروعهم الأول في مشروع مع إطار قوي للغاية يتطلب ترميزًا أقل للغاية وأكثر من ذلك على التكوين والتصحيح. لن تكون أبدًا مبرمجًا جيدًا ولا يمكنك بناء تطبيق PHP جيد من نقطة الصفر.

كيف لو كنت في مؤسسة تستخدم إطارًا معقدًا؟

اقض بعضًا من وقتك الخاصة لحل المشكلة في قديمة في هذه الحالة حتى تحصل على لمسة ما ذكرته أعلاه. آخر ، لن تجد أبدًا واثقتك في البرمجة وتستمر في إخبار نفسك ، "أعرف أن هذه هي الخطوات هي الطريقة للقيام بذلك". هذا ليس برمجة (متطرفة بعض الشيء :)).

إطار معقد مقابل بسيط

بعض الإطار على الرغم من استخدامه من قبل الكثيرين ، هو مجرد ساحق. هناك الكثير من الطبقات التي ستفقدها. عادة ما تكون هذه الأطر من أجل شيء ما هو الصورة النمطية ، والكثير من ملفات التكوين ، وإذا كنت ترغب في القيام بشيء غير عادي ، فمن الأفضل أن تكون كاتب الإطار (مبالغ فيه قليلاً هنا :)). لا أريد أن أذكر أي اسم هنا ، لكنك ستعرف ذلك عندما تواجه اسمًا واحدًا.

Codeigniter هو منتج لفريق Ellislab ومنتجه الرئيسي هو محرك التعبير الذي تم تطويره باستخدام Codeigniter.

بعد بعض الوقت من استخدام CI ، وجدت أن استخدام إطار YII أكثر ملاءمة. لديها الكثير من الامتدادات. وليس من الصعب فهمه بمستندات جيدة.

Cakephp ، على ما أعتقد ، بالقرب من codeigniter.

أوصي بشدة باستخدام إطار عمل لأي شيء أكثر من مجرد نص بسيط. قد يبدو مبالغة في بعض الأحيان ، لكنني أزعم أنه ليس كذلك. لقد قضيت عدة مناسبات حيث اعتقدت أنني لست بحاجة إليه (تطبيق بسيط ، Crud الأساسي في طاولات 3 ديسيبل).

بعد فترة وجيزة ، وجدت نفسي أقوم بعمل يدوي mysql_escape_string ، تصفية XSS وما إلى ذلك. ومنذ ذلك الحين ، أكتب رمزًا غير فريد فقط عندما أعتقد أن الإعداد سيستغرق المزيد من رمز العمل. وهذا يحدث نادرا جدا.

إذا كان عليّ أن أوصي بإطار عمل PHP ، فيجب أن أذهب مع Codeigniter أو YII Framework ، اعتمادًا على مدى تعقيد مشروعك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top