فریم ورک های php
به مرور زمان و به تناسب با تعداد سایت ها و وب اپلیکیشن هایی که توسط یک توسعه دهنده مثل من و یا شما طراحی میشود، مجموعه ای از کلاس ها با چندین متد مختلف و کارامد جمع آوری میشود...
یک سیستم سبد خرید فقط یکبار توسط یک طراح حرفه ای نوشته میشود و در آینده ممکن است فقط تغییراتی در آن ایجاد شود و یا بخش هایی به آن اضافه بشود که به اصطلاح سیستم رو کارآمدتر کند، خب این از مزایای شیء گرایی هست...
شما بخش های اصلی یک CMS رو فقط یکبار و فقط در اولین پروژه جدی خودتان مینویسید و در پروژه های بعدی به اون پر و بال میدهید...
بخش های محصولات و سبد خرید و تبلیغات و اخبار و مقالات و گالری های تصاویر و خیلی چیزهای دیگر، بخش هایی هستند که در همه پروژه از آنها استفاده میکنیم و نیازی به دوباره نویسی آنها نیست...
در واقع کدنویسی بخشی مجزا از طراحی میباشد و قابلیت بسزایی در تکرار شدن دارد...
حتی در پاره ای از مواقع طراحی هم قواعد خاص خودش را دنبال میکند تا در بسیاری از پروژه ها علیرغم اینکه دارای شمایل متفاوتی باشد، از بدنه یکسانی برخوردار باشد...
خب این شکل کدنویسی را اگر با قواعد خاصی همراه کنیم، به آن میگوییم فریم ورک و یا به عبارتی چارجوب کاری...
فرض کنید شما میخواهید بنحوی کار کنید که هم اکنون و یا در آینده یک تیم توسعه دیگر بتوانند سیستم کاری شما را درک کنند و هماهنگ با آن کار کنند...
بطور مثال در این برای نیل به این شرایط این قانون رو میگذارید که فرضاً تمامی کلاس های مربوط به پروژه در پوشه class که در مسیر ریشه وب اپلیکیشن قرار دارد، باشند و نام فایل تمامی کلاس ها به نام خود کلاس باشد و سپس با class.php تمام شود، مثلاً
salary.class.php
products.class.php
new.class.php
و یا قوانین مشابهی را در کدنویسی اعمال میکنید و خیلی کارهای دیگر...
خب به مجموعه قوانینی که شما گذاشته اید در کنار برنامه نویسی شیءگرا (OOP) فریم ورک یا چارچوب کاری میگویند...
در برنامه نویسی مدرن فریم ورک ها با سیستم برنامه نویسی سه لایه MVC ترکیب شده اند تا برنامه چارچوب قوی تری داشته باشد و از سبک و سیاق خاصی پیروی کند...
اینکه شما از MVC استفاده کنید یا نه بسته به نظر خودتان و یا لیدر تیم توسعه میباشد، اما اینکه از فریم ورک استفاده کنید یک ضرورت به نظر میرسد، چرا که شما ممکن است در آینده بهر دلیلی نتوانید با شرکتی که در آن کار میکنید همکاری داشته باشید و یا اینکه اگر در تیمی به کار توسعه مشغول هستید، ممکن است باز هم به هر دلیلی تصمیم به جدایی از تیم بگیرید و یا حتی بدلیلی خوشایند مثل ماه عسل مجبور باشید مدتی از تیم دور باشید...
اصولاً زمانی میتوانید اسم «خوب» را روی کارهای خودتان قرار دهید که همکاران کدنویس شما هم بتوانند سیستم کاری شما را درک نمایند و یا در صورت نیاز کار شما را توسعه دهند و یا حتی بجای شما این کار را انجام دهند...
اینکه همکارانتان مسیر فریم ورک شما را دنبال کنند و یا خودشان را با آن وقف دهند برای شما شیرین است، اما نباید از این مسئله غافل شد که استفاده از فریم ورک های غیر شخصی و معروف به چند دلیل بهتر بنظر میرسد:
- بدلیل استفاده هزاران نفر از فریم ورک، بسیاری از باگ های آن بخوبی مشخص شده اند.
- در فریم ورک در مورد مسائل امنیتی، واقعاً وقت صرف شده است.
- بسیاری از پاکت های توسعه فعالیت های معروف در وب اپلیکیشن ها (مثلاً پاکت احراز هویت) از قبل آماده است.
- فریم ورک دارای مستندات قابل قبول میباشد
- فریم ورک عمدتاً دارای معماری MVC میباشد.
- و اینکه خیلی از افرادی که به تیم توسعه اضافه میشوند از قبل با فریم ورک کار کرده اند و نیازی به جلسات توجیهی نمیباشد...
در واقع فریم ورک های آماده در صورت یادگیری و تسلط مناسب در حدود زیادی زمان توسعه را کاهش میدهند و همچنین باعث میشوند تا شما تمرکز خود را بر روی بخش های غیر آماده کار بگذارید!
از بین فریم ورک های آماده php که عمدتاً با سورس باز و لایسنس های مناسب از قبل GNU ارائه میگردند، چند فریم ورک توانسته اند محبوبیت و معروفیت بیشتری کسب کنند:
- فریم ورک Zend
- فریم ورک PHP Cake
- فریم ورک Yii
- فریم ورک Symphony
- و فریم ورک CodeIgniter
Zend:
به جرأت میتوان گفت که Zend قویترین و معروف ترین فریم ورک php میباشد که با آمار چشمگیر 15 میلیون دانلود، تا حدود زیادی به رقبای خود فخر فروشی میکند.
جالب است بدانید که کمپانی های بزرگی مثل گوگل یا مایکروسافت هم نگاهی به زند دارند و برای ساخت رابط های وب سرویس و یا دیگر تکنولوژی ها با زند همکاری میکنند...
زند تحت مجوز BSD ارائه میگردد.
کیک پی اچ پی میگوید: «از من برای تولید کدهای و اسکلت بندی ویژگی های نرم افرازتان در جهت ساخت سریع نمونه های اولیه کار استفاده کنید.»
php cake در ایران طرفدان بسیاری دارد و تحت مجوز MIT عرضه گردیده است.
سیمفونی در اکتبر 2005 معرفی شده است و توانسته در طی این سالها خودش را بعنوان گزینه ای برای به انجام رساندن پروژه های عظیم معرفی نماید، سیمونی میگوید: «فرآیند کدنویسی تکراری خود را با سیستمی عوض کنید که به شما قدرت، کنترل و لذت را هدیه میدهد.»
سیمفونی هم از معماری MVC استفاده میکند و در نسخه جدید خودش ادعا کرده که سرعت اجرای فریم ورک را بسیار بالا برده است.
این فریم ورک هم با لایسنس MIT ارائه میشود.
کدایگنیتر (و یا به اختصار CI) یک فریم ورک با هسته بسیار سبک است که شاید بتوان گفت بالاترین سرعت را در بین فریم ورک های معروف php دارا میباشد و به ادعای خود کدایگنیتر، این فریم ورک کمترین ردپا را از خود بجا میگذارد.
CI مناسب برای مقاصد آموزشی و همچنین تجاری میباشد و دارای مستندات قابل قبول و کلاس های کارآمد بسیار میباشد.
سخن پایانی اینکه تعداد فریم ورک های php بسیار بیشتر از نام هایی میباشد که ذکر شد، بعضی از فریم ورک هایی هم که ذکر نکردیم، دارای محبوبیت و قدرت های بسزایی هستند...
اگر یک جستجوی کوچک در اینترنت داشته باشید، با benchmark های بسیار و متفاوتی مواجه میشوید، بعضی از سایت ها جانب عدالت را در مقایسه های خود رعایت کرده اند و بعضی دیگر به حق و یا به ناحق از فریم ورک خاصی حمایت کرده اند.
بهرصورت انتخاب یک فریم ورک مناسب با شماست، شاید در طول زمان و در زندگی کاری و حرفه ای خود چندین فریم ورک را امتحان کنید، اما اگر به بازار کار و کار تیمی توجه دارید، پیشنهاد میکنیم از فریم ورکی استفاده کنید که در ایران مورد استفاده بیشتری دارد، مگر اینکه قدرت معرفی کردن یک فریم ورک ناشناخته و صد البته قدرتمند را در سطح یک کشور داشته باشید!