PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کدام فریم ورک براي php مناسب هست؟(بررسي محيط هاي استاندارد برنامه نويسي php)



Borna66
08-26-2010, 11:04 PM
Zend Framework (http://zendframework.com/)
طبیعتا Zend Framework سرشناس‏ترین و بالاترین گزینه ما است؛ چون که
Zend، شرکتی که پشت PHP است آن را طراحی و تولید کرده است. این Framework
امکانات زیادی داشته و بسیار قدرتمند است و هر آن چه که برای تولید یک
پروژه بزرگ لازم داشته باشید در خود دارد. License آن هم BSD (http://en.wikipedia.org/wiki/New_BSD_License) است که به
شدت انعطاف پذیر بوده و شرط می‏کند که در صورت توسعه آن باید کد تولید شده
کاملا انعطاف پذیر باشد.

همچنین این Framework از PHP 4 پشتیبانی نمی‏کند و تنها در PHP 5 اجرا
می‏شود. با توجه به تلاشهای
زیاد (http://www.gophp5.org/) اخیر برای ارتقاء به PHP 5 در سرورها شاید این مسئله کمتر به چشم
بیاید ولی به هر روی ناهماهنگی با یکی از گسترده‏ترین نسخه‏های PHP در این
Framework به چشم می‏خورد.

این Framework و کامپوننت‏های فراوان آن برای پروژه‏های خیلی خیلی بزرگ
مناسب است ولی برای خیلی از پروژه‏ها چیزهایی را ارائه می‏کند که خیلی
بیشتر از نیاز آنها است و همچنین به طور نسبی از پیچیدگی‏هایی برخوردار
است. خیلی از چیزهایی که Zend Framework داره، خیلی کم کاربرد است. Zend Framework
خیلی خوش دست نیست و یاد گرفتن آن زمان زیادتری می‏برد و زمان زیادی لازم
هست تا بفهمید دقیقا چگونه کار می‏کند. این پیچیدگی مخصوصا اگر بخواهید با
یک تیم کار کنید، سبب می‏شود تا زمان زیادی برای آموزش تیم از بین برود.
همچنین این Framework شما را به پیروی از MVC اجبار نمی‏کند. این مساله اگر
چه از یک سو سبب انعطاف‏پذیری می‏شود ولی از سوی دیگر هم ممکن است کار شما
را غیر استاندارد کند.

Borna66
08-26-2010, 11:04 PM
یکی از مشهورترین و محبوب‏ترین Frameworkها و یکی از بهترین برابرهای Rails (http://rubyonrails.org/) در PHP به شمار
می‏آید. از MVC کامل پشتیبانی می‏کند. کاربران خیلی زیاد و فعالی دارد که
ویژگی مهمی به حساب می‏آید. Mambo
CMS محبوب Mambo (http://mamboserver.com/) هم
قرار است در نسخه‏ های آینده از CakePHP استفاده کند.
اما این سیستم دو تا اشکال کوچک هم دارد. یکی این که بیش از اندازه کند است. این مساله در صورتی که هزینه سرور برای شما اهمیت داشته باشد،
خودش را بیشتر نشان می‏دهد. دوم این که اسامی کلاسهایی CakePHP خیلی عمومی
طراحی شده است. برای نمونه کلاس Database که اگر شما هم کلاس مشابهی داشته
باشید، سبب ایجاد ناهماهنگی در کد شما می‏شود و به طور کلی چنین اسم‏گذاری
و به کار نگرفتن پیشوند مناسب مانند Cake سبب بدبینی نسبی من به طراحی این
سیستم شده است.
همچنین ORMی که در CakePHP طراحی شده است، توارث را پشتیبانی نمی‏کند

ولی به طور کلی نصب CakePHP خیلی ساده است و راه انداختن اولیه سایت
باهاش کار ساده و آسانی است. بر خلاف Zend Framework که نمی‏دانستید از کجا
باید آغاز کنید، در CakePHP خیلی سریع می‏توانید یک سایت ساده راه
بیاندازید. ولی انجام کارهای پیشرفته‏تر به دلیل نبودن مستندات کافی و
راهنماهای مناسب کمی با CakePHP دشوار است

Borna66
08-26-2010, 11:05 PM
Prado (http://www.pradosoft.com/)
از همه گزینه‏های دیگر متفاوت است. بر پایه MVC درست نشده است. طراح Prado
این کار را برای پروژه دکترایش انجام داده است و در طراحی آن Delphi را مد
نظر داشته و تلاش کرده تا یک Framework کاملا Object Oriented و Event
Driven درست کند. اگر با ASP.NET کار کرده باشید، Prado را خیلی مشابه با
آن خواهید یافت. در Prado همه چیز حتی یک Label و Button هم Object است که
Propertyها و Eventهای خاص خودش را دارد. همچنین زبانی شبیه به HTML برای
طراحی ظاهر صفحات دارد (دقیقا شبیه به ASP.NET و Tagهای asp: این زبان)

Borna66
08-26-2010, 11:05 PM
CodeIgniter (http://codeigniter.com/)
این Framework خیلی شبیه به CakePHP و از آن ساده‏‎تر و کوچکتر است و به
همین خاطر هم از لحاظ سرعت از CakePHP خیلی بهتر است ولی خوب به همان
اندازه هم امکانات کمتری دارد. این Framework شما را مجبور به پیروی کامل
از MVC نمی‏کند، بنابراین برای یادگیری نوآموزان بهتر است. از Ajax هم
مستقیما پشتیبانی نمی‏کند. ولی Code Igniter ویژگی‏های خوبی هم دارد. این
Framework در PHP 4 هم کار می‏کند و از لحاظ سبک برنامه‏نویسی به سبک
برنامه‏نویسی PHP 4 نزدیک است. به همین خاطر برای Port کردن کدهای قدیمی به
یک Framework گزینه مناسبی است. همچنین دارای Community بزرگی است و
کامپوننتها و مثالهای فراوانی برایش پیدا می‏شود.

Borna66
08-26-2010, 11:05 PM
symfony (http://www.symfony-project.org/)
این Framework امکانات بسیار زیادی دارد و ماژول‏های جداگانه را برای
انجام کارهای خودش به کار می‏گیرد: مانند DB Layer که با امکانات زیاد خودش
واقعا لایه بانک اطلاعاتی شما را به بهترین شکل پشتیبانی می‏کند و امکان
نوشتن برنامه مستقل از بانک اطلاعاتی را به شما می‏دهد. (اگر چه این ویژگی
در Frameworkهای دیگر هم هست).
برای انجام پروژه‏های بزرگ symfony به خاطر امکانات زیادش، گزینه خیلی خوبی
است ولی با این حال، پیچیدگی‏های Zend Framework را هم ندارد. این
Framework هم تنها بر روی PHP 5 کار می‏کند. License آن هم MIT است که
License خوب و انعطاف‏پذیری به حساب می‏آید. همچنین این Framework به خوبی
AJAX را پشتیبانی می‏کند و امکاناتی برای ساختن صفحات Admin سایت دارد که
کار طراحی بخش مدیریتی سایت را خیلی آسان می‏کند.

سیمفونی از ORM مشهوری به نام Propel (http://propel.phpdb.org/) بهره می‏گیرد اگر چه در CakePHP هم ORM هست ولی در آن جا از
یک سیستم داخلی استفاده شده است. به کار گیری یک ORM بیرونی سبب افزایش
سرعت توسعه سیمفونی شده است؛ چون که Propel سیستم خیلی مشهوری بوده و به
طور عادی خودش در حال توسعه هست. این مساله همچنین هوشمندی طراحان سیمفونی