المؤلف: هييلورين
المدونة: http://blog.csdn.net/heiyeshuwu
الوقت: 2008-5-5
لقد استخدمت مؤخرًا العديد من أطر عمل PHP الأجنبية السائدة (باستثناء الأطر المحلية) المستخدمة حاليًا في الصين. لدي شعور بديهي بشأن هذه الأطر وأود أن أشاركها بإيجاز، ما هي الأطر التي يجب استخدامها عند اختيار الأطر؟ كمرجع.
تتضمن الأطر المرجعية الرئيسية: CodeIgniter، وCakePHP، وZendFramework، وSymfony.
ملاحظة: لم أستخدم العديد من الأطر على محمل الجد، لقد قمت بتجربتها لفترة وجيزة فقط، وقد تكون العديد من آرائي غير ناضجة أو خاطئة. :-)
【CodeIgniter】
الموقع الرسمي: http://codeigniter.com
الموقع الصيني: http://codeigniter.org.cn
الدليل الصيني: http://codeigniter.org.cn/user_guide
فيديو تعليمي: http://codeigniter.org.cn/tutorials
النسخة التجريبية: CodeIgniter_1.6.1
المزايا:
1. التكوين بسيط، ويتم تكوين جميع التكوينات باستخدام نصوص PHP، وكفاءة التنفيذ عالية؛ وله وظائف توجيه أساسية ويمكنه تنفيذ التوجيه إلى حد ما؛ وله وظائف تخطيط أولية ويمكنه إنشاء مستوى معين من مظهر الواجهة طبقة قاعدة البيانات مغلفة جيدًا، مع وظائف MVC الأساسية
2. سريع وموجز، وليس الكثير من التعليمات البرمجية، وأداء تنفيذ عالي، وإطار بسيط، وسهل الاستخدام، وتكلفة تعلم منخفضة، ووثائق مفصلة؛ ويأتي مع العديد من المكتبات البسيطة وسهلة الاستخدام، والإطار مناسب للتطبيقات الصغيرة
. العيوب:
1. ما عليك سوى فهم طبقة النموذج كعمليات قاعدة بيانات
2. الإطار بسيط بعض الشيء ويمكنه تلبية احتياجات التطبيقات الصغيرة فقط، ولكنه أقل قدرة قليلاً على تلبية احتياجات التطبيقات متوسطة الحجم
:
بشكل عام، من المفيد استخدام CodeIgniter لإكمال التطبيقات البسيطة والسريعة، وفي الوقت نفسه، يمكنه إنشاء درجة معينة من التخطيط لتسهيل إعادة استخدام القوالب، وطبقة تشغيل البيانات مغلفة جيدًا، ولا يستخدم CodeIgniter الكثير تعد أنماط التصميم المعقدة للغاية بمثابة أداء جيد وإمكانية قراءة التعليمات البرمجية. أما بالنسبة للمكتبة الإضافية فهي أيضًا جيدة جدًا وبسيطة وفعالة.
【CakePHP】
الموقع الرسمي: http://www.cakephp.org
الدليل الصيني: http://www.1x3x.net/cakephp
فيديو تعليمي: http://search.you.video.sina.com.cn/s?key=cakephp
النسخة التجريبية: cake_1.1.19.6305
المزايا:
1. CakePHP هو الإطار الأكثر تشابهًا مع RoR، بما في ذلك طريقة التصميم وطريقة Active Record لتشغيل قاعدة البيانات؛ مستوى التصميم أنيق للغاية، ولا يأتي مع مكتبات إضافية، وجميع الوظائف عبارة عن أطر عمل خالصة، وكفاءة التنفيذ ليست سيئة؛ تعتبر وظائف hasOne و hasMany قوية جدًا ومناسبة لمعالجة الأعمال المعقدة؛ كما أن وظيفة التوجيه ووظيفة التكوين ليست سيئة؛ كل طبقة من MVC لها وظيفة البرنامج النصي لسطر أوامر التشغيل التلقائي؛
2. التوثيق مكتمل نسبيًا وتم الترويج له بنجاح في الصين. يعرف معظم الناس أن تكلفة التعلم متوسطة
.
1. هناك مشكلة خطيرة جدًا في CakePHP وهي أنه يفهم النموذج كعملية طبقة قاعدة بيانات، مما يؤثر بشكل خطير على قدرته على العمل بخلاف قاعدة البيانات.
2.
وظيفة ذاكرة التخزين المؤقت الخاصة بـ CakePHP ضعيفة بعض الشيء، ووظيفة التكوين الخاصة بها ضعيفة بعض الشيء؛ إن CakePHP غير مناسب للتطبيقات واسعة النطاق، ولكن تكلفة التعلم أعلى قليلاً للتطبيقات الصغيرة الحجم.
بشكل عام، يمثل إطار عمل CakePHP حقبة مهمة للغاية ويمثل إطار عمل PHP، ويلعب حاليًا دورًا مهمًا للغاية. تحاكي العديد من الأطر المكتوبة ذاتيًا طريقة CakePHP، وهو منتج بارز يكشف عن أساليب تطوير RoR Agile تعتبر فلسفة التصميم المتمثلة في اعتبار عمليات قاعدة البيانات النموذج الوحيد أدوات ممتازة لتطوير التطبيقات والنماذج الأولية السريعة، وبالمثل، من المفيد أيضًا اختيارها كإطار تطوير لمواقع ويب 2.0.
【Zend Framework】
الموقع الرسمي: http://framework.zend.com
الدليل الصيني: http://www.phpeye.com/zf
فيديو تعليمي: http://framework.zend.com/docs/screencasts
نسخة تجريبية: ZendFramework-1.5.0
المزايا:
1. تم إنتاجه رسميًا، ويأتي مع الكثير من المكتبات. تم كتابة الإطار نفسه باستخدام العديد من أنماط التصميم. والهندسة المعمارية أنيقة جدًا وكفاءة التنفيذ متوسطة، كما أن تصميم MVC بسيط نسبيًا، ويحتوي على وظائف التوجيه وملف التكوين قوية نسبيًا (يمكنها التعامل مع XML وphp INI)، والمكتبات المتنوعة قوية جدًا ولها الوظائف الأكثر شمولاً بين جميع أطر عمل PHP، بما في ذلك أنها ليست مجرد إطار عمل، ولكنها أيضًا مكتبة فئة كبيرة (تحل محل PEAR). الميزة الرئيسية لها هي أنها تدعم بشكل حدسي طبقة النموذج بالإضافة إلى عمليات قاعدة البيانات (أقوى من CodeIgniter و CakePHP)، ويمكنها بسهولة استخدام وظيفة Loader لتحميل الفئات الأخرى المضافة حديثًا، كما أن وظيفة ذاكرة التخزين المؤقت قوية جدًا، وهي مدعومة من ذاكرة التخزين المؤقت الأمامية إلى ذاكرة التخزين المؤقت الخلفية تدعم ذاكرة التخزين المؤقت الطرفية Memcache و APC و SQLite والملفات وما إلى ذلك؛
2. التوثيق كامل للغاية، والمجتمع المحلي ناضج جدًا، ويستخدمه حاليًا العديد من مواقع الويب 2.0، وتكلفة التعلم متوسطة
.
1. وظيفة MVC ضعيفة نسبيًا، ويتم تنفيذ طبقة العرض ببساطة (تمامًا كما لم يتم تنفيذها)، ولا يمكنها التحكم في الصفحة الأمامية بقوة كبيرة.
2. لا يوجد برنامج نصي آلي لإنشاء تطبيق، بما في ذلك ملف الإدخال، يجب عليك إنشائه يدويًا.
3. لا يمثل Zend Framework مشكلة كبيرة كإطار تطبيقي متوسط الحجم، وبالكاد يمكن استخدامه كإطار عمل للتطبيقات واسعة النطاق. ومع ذلك، باعتباره إطار عمل PHP ناضجًا للغاية وواسع النطاق، فإنه لا يزال يحتاج
إلى
بعض الجهوديقيم:
كإطار تم إنتاجه رسميًا، يمكن توقع طموحات Zend Framework، فهي تريد مزاحمة الأطر الأخرى وفي نفس الوقت تغليف العديد من مكتبات الفئات القوية لتوفير خدمات إطارية متكاملة. علاوة على ذلك، فإن فريق التطوير الخاص بهم قوي جدًا وقادر تمامًا القدرة على تطوير منتجات قوية جدًا، فمن المؤكد بشكل أساسي أن Zend Framework له مستقبل مشرق إذا تم قضاء المزيد من الوقت لتحسين إطار العمل. وبالمثل، فإن بنية Zend Framework نفسها أنيقة نسبيًا، مما يدل على أن Zend رسميًا لديها العديد من الخبراء ومتقدمة نسبيًا في مفاهيم التصميم على الرغم من عدم تنفيذ بعض الوظائف بشكل كامل، مثل طبقة العرض، والبرامج النصية للأتمتة، وما إلى ذلك، إلا أن كل هذه الوظائف تعتمد على بعضها البعض في المستقبل. بشكل عام، Zend Framework هو الإطار الأكثر توقعًا، بالطبع، لا توجد مشكلة إذا كنت تريد استخدامه في مشاريعك الآن.
【Symfony】
الموقع الرسمي: http://www.symfony-project.org
الموقع الصيني: http://symfony-project.cn
الدليل النهائي: http://www.symfony-project.org/book
مرجع التعلم: http://sf.thecodecentral.com
النسخة التجريبية: Symfony-1.0.13
المزايا:
1. Symfony هو أقوى إطار عمل PHP أعرفه، وأنا أستخدمه منذ فترة طويلة، ولكن لم يتم اكتشاف العديد من الوظائف بعد؛ فهو ينفذ بالكامل الطبقات الثلاث لـ MVC ويغلف كل شيء، بما في ذلك $_POST و$_GET البيانات، ومعالجة الاستثناءات، ووظيفة تصحيح الأخطاء، واكتشاف البيانات؛ تتضمن وظيفة تخزين مؤقت قوية، وتحميل تلقائي للفئة (هذه الوظيفة رائعة جدًا)، ودعم تأميم i18n قوي للغاية، ويمكن أن يحتوي على ملفات متعددة بطريقة مجزأة؛ وظيفة تكوين قوية جدًا. باستخدام تكوين yml، يمكنك التحكم في جميع أطر العمل وسلوكيات تشغيل البرنامج، وهي قوية جدًا لدرجة أنها تجعل الأشخاص عاجزين عن الكلام، ويمكنك تحديد فئات مختلفة خاصة بك حسب رغبتك، ويمكن لـsymfony تحميل (تحميل تلقائي) هذه الفئات تلقائيًا، والتي يمكن استخدامها في البرنامج حسب الرغبة؛ تتضمن إدارة قوية للمشروعات والتطبيقات متعددة المستويات: المشروع --> التطبيق --> الوحدة النمطية --> الإجراء، والتي يمكن أن تلبي احتياجات تطبيقات متعددة في مشروع واحد، ويمكن لكل طبقة تحديد ملف التكوين الخاص بها، والتخطيط، ووظائف تشغيل سطر الأوامر القوية جدًا، بما في ذلك مشاريع البناء، وبناء التطبيقات، وبناء الوحدات، وتحديث ذاكرة التخزين المؤقت، وما إلى ذلك؛
2. يعد Symfony بالتأكيد الخيار الأول لتطوير المشاريع الكبيرة والمعقدة، لأن استخدام Symfony سيوفر تكاليف التطوير بشكل كبير، ولن تكون هناك مشاكل عندما يتعاون عدة أشخاص بعد تحديد الفئة الأساسية على مستوى المشروع، يمكن تعريف أي وحدة نمطية إعادة الاستخدام مساوئ إعادة استخدام الكود بشكل كبير
:
1. يستخدم نموذج تشغيل قاعدة البيانات الدعامة الثقيلة والكريول، ولكن في الإصدار الذي اختبرته، تم نقلهما إلى الملحق.
2. لا يمكن التحكم في وظيفة ذاكرة التخزين المؤقت. يتم دائمًا تخزين ذاكرة التخزين المؤقت في كل مرة أثناء التطوير والتصحيح. تحتاج إلى تنفيذ Symfony cc وsymfony rc لمسح ذاكرة التخزين المؤقت وإعادة بنائها.
3. الكفاءة ليست عالية جدًا، خاصة عملية تحليل القوالب وقراءة ملفات التكوين، والتي تستغرق الكثير من الوقت؛
4. تكلفة التعلم مرتفعة للغاية، ولا يوجد مجتمع ناضج ووثائق في الصين، ولا حتى دليل صيني، وبالتالي، يستغرق الأمر الكثير من الوقت لإتقان جميع الوظائف وتقييمها
:
Symfony هو بالتأكيد إطار عمل على مستوى المؤسسة، وهو الشيء الوحيد الذي يمكن أن يتنافس على ما يبدو مع أطر العمل القوية في مجال Java. الأشياء القوية معقدة بشكل طبيعي للتعلم، ولكنها مفيدة أيضًا لتطوير المشروع أعتقد أن تكلفة الصيانة في المرحلة اللاحقة منخفضة نسبيًا وقابلية إعادة الاستخدام قوية جدًا للمشاريع المعقدة. بالمقابل، إذا كنت تستخدم Symfony لمشاريع الإنترنت الأكثر تعقيدًا، فيجب عليك مراعاة مسألة توزيع قاعدة البيانات، فأنت بحاجة إلى التخلي عن طبقة تشغيل قاعدة البيانات التي تأتي مع Symfony وتعريفها بنفسك. بالطبع، يدعم Symfony إنشاء طبقة النموذج بشكل عشوائي.
[تعليق عام]
الأطر المذكورة أعلاه لها خصائصها الخاصة، وجميعها مشاريع مفتوحة المصدر، ومع ذلك، فإن المشاريع التي تستهدفها الأطر مختلفة بشكل عام، CodeIngiter أكثر ملاءمة للمشاريع الصغيرة، وCakePHP وZend Framework أكثر ملاءمة لها المشاريع متوسطة الحجم، ويعتبر Symfony أكثر ملاءمة للمشروعات الكبيرة والثقيلة الوزن. عند اختيار المشاريع، يجب عليك أن تأخذ في الاعتبار بشكل كامل قابلية التخصيص وقابلية التوسع لإطار العمل، لأن كل مشروع لا يمكنه تحديد ما إذا كنت ستجري تغييرات مع تغير احتياجاتك.
نسبيًا، يتمتع Zend Framework وSymfony بقدرة قوية على التعامل مع التغييرات، وخاصة الفئات الموجودة في طبقة النموذج التي يمكن تخصيصها حسب الرغبة، مما يجعل من السهل جدًا إضافة فئات الأعمال أو معالجة البيانات الخاصة بك استخدامها في المشاريع المتوسطة والكبيرة. يمكن أن يلعب CodeIngiter وCakePHP أيضًا دورًا مهمًا في المشاريع الصغيرة والمتوسطة الحجم، والتطوير السريع وبناء النماذج الأولية، كما أنهما مناسبان جدًا لتطوير مشاريع النماذج الأولية ذات الأهداف غير الواضحة. أفضل طريقة لفهم إطار العمل هي استخدامه، وأفضل طريقة لتعلمه هي مشاهدة مقاطع الفيديو. :-)
الناس المحسنين لديهم آراء مختلفة، والحكماء لديهم آراء مختلفة. عند اختيار إطار عمل لمشروع ما، يرجى فحص احتياجات المشروع والتغيرات المستقبلية بعناية، ثم اختيار الإطار المناسب لتحقيق توازن معقول بين سرعة تطوير المشروع وسرعة تطويره. إمكانية الصيانة لاحقًا، بالطبع، ربما يكون من المناسب أن تكتب الإطار بنفسك. :-)
لقد قمت بإجراء تقييم عام للعديد من الأطر، وأعتقد أن الكثير من الأشياء ليست في محلها، لذلك سأترك الأمر عند هذا الحد، كما نرحب بالتعليقات والتصحيحات.