You are here:

چارچوب های برنامه نویسی پی اچ پی - مقایسه و انتخاب

فرستادن به ایمیل چاپ

Tags: برنامه نویسی | تجربیات | تخصصی | وب

قصد دارم تابستان امسال را روی یک کار تحت وب سرمایه گذاری کنم که با توجه به نیازسنجی که انجام داده ام احتمال موفقیتش خیلی بالاست . فعلاً به خود پروژه کاری ندارم اما مدتیست دنبال یک چهارچوب برنامه نویسی پی اچ پی می گردم.

درست است که اکثر سایتهایی که آماده کرده ام به کمک سیستم مدیریت محتوای جوملا بوده است و حتی سال گذشته یک کامپوننت کامل مدیریت مدرسه هم برای جوملا نوشته ام ، اما چون سیستمهای مدیریت محتوا سیستمهای همه منظوره اند ، برای کاربردهای خاص مناسب نیستند و معمولاً کندتر از سیستم های تک منظوره اند.

کامپونتتی که برای مدرسه در جوملا نوشتم ، مزیت مهمی که داشت مرا با دنیای برنامه نویسی سه لایه در وب یعنی مدل MVC آشنا کرد. مدلی که در آن کاربر با لایه بیرونی (View) ارتباط دارد، داده ها در لایه داده (Model ) ذخیره می شوند و کنترل برنامه دست لایه (Controller) است. مدلی که به دلیل منطق پشت آن ، امروزه بسیار رایج شده است. برنامه هایی که در شرکت نیز کار می کنیم و غیر وبی هستند نیز به این شیوه کد نویسی می شوند.

مزیت چهارچوب های برنامه نویسی این است که همه چیز در آنها پیش بینی شده است از قبیل امنیت ، کتابخانه های جاوا اسکریپت و کلی امکانات دیگر . دقیقاً مشابه چهارچوب دات نت که مجموعه ای از هزاران کلاس آماده شده مایکروسافت است و برنامه نویسی به کمک آنها بسیار راحت تر شده است.

پس از جستجوهای زیاد به این چند مورد رسیدم :

  1. CakePHP (کیک پی اچ پی)
  2. Zend FrameWork
  3. Symfony (سیمفونی)
  4. CodeIgniter  (کدایگنایتر)
  5. Yii

از بین اینها قبلاً نظرم روی CakePHP بود اما پس از بررسی متوجه شدم سرعت پزدازش صفحات در آن بالاست . چهارچوب Zend نیز به طور خاص برای برنامه نویسی سه لایه طراحی نشده است (هر چند شرکت اصلی توسعه دهنده پی اچ پی شرکت Zend است) Symfony هم مشابه CakePHP بود . بین دوتای آخر که از لحاظ سرعت و کارآیی طبق آزمایشات انجام شده مشابه هم بودند، CodeIgniter را به دلیل داشتن مستندات بیشتر انتخاب کردم (با یک جستجوی ساده در 4Shared سه تا کتاب جدید در مورد CodeIgniter پیدا کردم.)

فعلا دارم روی این چهارچوب برنامه نویسی پی اچ پی کار می کنم (اما با جستجوی بیشتر نهایتاً سیمفونی را برای برنامه نویسی نهایی انتخاب کردم و اولین برنامه حرفه ای نوشته شده با آن که حدود یکسال از وقتم را گرفت تا بهار 91 به بازار عرضه خواهد شد.- نوروز 91)

 

---------------------------------------------

توضیحی را بعد از دیدن کامنت ها ضروری میدانم که به مطلب فوق اضافه کنم

انتخاب چهارچوب برنامه نویسی یا همان PHP Framework به نظرم علاوه بر مقیاس های مختلف ، می تواند سلیقه ای نیز باشد. مثلاً ممکن است یکی از دوستان شما که با Zend کار کرده باشد از مزایای آن برایتان تعریف کند و شما هم با کمی جستجو همان را انتخاب کنید یا خودم نمی دانم چرا اما از سایت کیک پی اچ پی خوشم آمده بود و قصد داشتم با آن کار کنم.

توی بعضی از سایتها مانند تالار گفتگوی سایت ایران پی اچ پی مشاهده کردم که بعضی دوستان متعصبانه نظر داده اند یا بدون تحقیق کافی که مناسب بحثهای تخصصی نیست.

به خاطر داشته باشید که امکانات اصلی هر چهارچوب برنامه نویسی تا حدود زیادی مانند بقیه است و اگر هم یکی فاقد امکان خاصی باشد سریعاً به آن اضافه خواهد شد مانند امکان ORM (تبدیل جداول بانک اطلاعاتی به کلاسهای متناظر در برنامه نویسی شئ گرا) که دوستان جزء ضعفهای کدایگنایتر دانسته اند در صورتی که در نسخه های جدید در قالب اکتیو رکورد تا حدود زیادی پیاده سازی شده است. بنابراین ملاکتان نقص امکانات یک چهارچوب نباشد و مثلاً مستندات خوب و راهنمای قابل استفاده بخصوص به زبان فارسی می تواند یک معیار خیلی خوب باشد که به نظر کیک پی اچ چی با داشتن یک سایت فارسی از بقیه در این زمینه جلوتر است.

اما در مورد منابعی که در مورد مقایسه فریم ورک های پی اچ پی استفاده کردم :

  1. مقایسه فریم ورک های برنامه نویسی به صورت کلی در ویکی پدیا
  2. مقایسه چارت مانند امکانات چهارچوب ها - که به نظرم قدیمی است و خیلی قابل استفاده نیست.
  3. مقایسه امکانات با توضیح مختصر هر یک
  4. مقایسه کارآیی  و سرعت به کمک یک محک (ابزار آزمایش یا همان Benchmark)  که تصمیم اصلی را از این سایت گرفتم هر چند خودم انجامش ندادم.
  5. مقایسه کارآیی و سرعت که چون در خود سایت Yii انجام شده نباید خیلی قابل اطمینان باشد.

اما نکته مهمی را که از سایتهای فوق و بخصوص منبع چهارم متوجه شدم این است که سرعت اجرای یک صفحه ساده پی اچ پی حدود 130 برابر صفحه ایست که به کمک یک چهارچوب برنامه نویسی پی اچ پی نوشته شده است یعنی درست است که سرعت تولید و نگهداشت برنامه ها سریعتر می شود اما سرعت اجرای برنامه ها کاهش می یابد و هر چه بتوانیم با چهارچوبی کار کنیم که سبک تر و سریعتر باشد ، برد کرده ایم.

خوشحال می شوم نظرات شما را هم بدانم.

----------------------------------------------------------------------

به این دو تا مطلب هم بعداً برخورد کردم :

- با فریم ورک های PHP هرچه سریعتر وب سایت بسازید!

- سردرگمی میان Frameworkهای PHP - کدام یک را باید برگزید؟



نظرات (5)Add Comment
0
اشتباه در انتخاب
نویسنده صالح سوزنجی, ژوئن 06, 2010
سلام دوست عزیز. خوشحالم که دارید به این سمت حرکت میکنید.
فقط یک نکته رو میخواستم خدمتتون عرض کنم

1- ci یک فریم ورک ساده و روان با داکیومنت قوی هست. اما عیوب زیادی داره . که برای پروژه های بزرگ و سنگین جواب گو نیست. به عنوان مثال orm نداره.

اما سوال بنده این هست. از چه طریقی پی به پردازش بالا در صفحات بردید؟ و دقیقا منظور شما رو نفهکمیدم.

درضمن فروم تخصصی کیک رو هم بهتون معرفی میکنم . cakephp.ir
شاد باشید
0
تشکر
نویسنده رضوی, ژوئن 10, 2010
سلام و خسته نباشید.
از پست به موقع و مفیدتون کمال تشکر و قدردانی رو دارم. امیدوارم به لطف و امداد الهی بتونم به نحو احسن از این نوع مطالب برای رشد علمی و تعالی معنویات استفاده کنم.
موفق و سربلند باشید.یا حق
0
...
نویسنده salehi, اكتبر 16, 2010
سلام استاد مطلبتونو خوندم. بهم کمک کرد مخصوصا سایت فارسی کیک پی اچ پی.
من مدتی هست که با کیک پی اچ پی کار میکنم کیک از نظر اعتبارسنجی و autentication خیلی قوی هست.
0
...
نویسنده علي اكبر پناهي, مارس 01, 2011
سلام دوست عزيز . مطلب خيلي خوبي ست .
ميشه اين بخش رو توضيح بديد ؟‌ من با زند كار كردم و كاملا بر اساس MVC نوشته شد .

"چهارچوب Zend نیز به طور خاص برای برنامه نویسی سه لایه طراحی نشده است"


بنائی :
ممنون از لطفتون. مطلب فوق را از اینترنت پیدا کرده بودم و اگه شما کار کردید و با این نظر مخالفید من مطلب را اصلاح کنم.
خودم در حال حاضر دارم سیمفونی کار میکنم و بخش آموزش سایت را هم به همین منظور راه انداخته ام
0
Yii2
نویسنده محمد, نوامبر 22, 2015
.شخصا با سیمفونی پروژه ای انجام ندادم. اما با بررسی که کردم Yii2 علاوه بر در اختیار گذاشتن امکانات بیشتر و در نتیجه افزایش سرعت توسعه ، نسبت به سیمفونی به مراتب سریع تر است(ساخت یک صفحه ساده با هر دو)

نظرتان را بنویسید
کوچکتر | بزرگتر

busy
آخرین بروزرسانی ( شنبه ، 27 اسفند 1390 ، 19:36 )