اگر آموزش php را دنبال کرده اید متوجه شدید که ما فقط با کد نویسی آشنا شدیم

حالا نوبت استفاده از آموخته هاست

در اینجا

Yii Frame work

چرا فریم ورک؟

 در اولین جلسه از آموزش YiiFramework لازم می دانم به چند سوال و شبه ی احتمالی که ممکن است در ذهن دوستان باشد پاسخ دهم.

۱-   به طور کلی مفهوم Framework چیست؟

۲-   چرا باید از آن استفاده کنیم یا بهتره بگوییم چه لزومی برای استفاده از Framework وجود دارد؟

۳-   آیا در صورت عدم استفاده از Framework در پروژه خود پروژه ی کاری به مشکل بر می خورد؟

۴-   با وجود روش ساده ای که خود زبان PHP برای کد نویسی در نظر گرفته است آیا باز هم لازم است از Framework استفاده کنیم؟

برای پاسخ به این موارد بهتر است که نگاه اجمالی به مفاهیم اولیه بندازیم:

ببینید دوستان ما نمی خواهیم در طول آموزش زبانی را با زبان دیگر مقایسه کنیم یا بگوییم کدام زبان نسبت به دیگری بهتر است، زیرا هر زبان یا هر تکنولوژی در جایگاه خود کارایی خاص خود را دارد و در جایی نیز کمبود های رو به همراه دارد، صرفا می خواهیم یک مقدمه ای داشته باشیم تا به بحث اصلی برسیم.

چون اکثر دوستان در دانشگاه زبان #C رو کار کردند من یکم تمرکز توضیح رو میبرم روی زبان #C و یک تاریخچه ی خیلی کوتاه از زبان ها و مفاهیم خدمت دوستان عرض می کنم، لحظه ای که برنامه نویس ها خواستند چارچوب های شی گرایی رو بچینند متوجه شدن که این جهان بعد گذشت این همه سال چطوری توانسته دوام بیاره و از هم نپاشه؟ و به این نتیجه رسیدند که این جهان یک جهان شی گرا هستش، لحظه ای که یک جهان شی گرایی باشه اینطور میشه: وقتی object ای از یک شی ایجاد میشه تمام خصوصیات و رفتارها رو با خودش داره و وقتی حرکت می کنه تمام خصوصیات و رفتارها رو با خودش جابجا می کنه و وقتی شی ای از بین میره تمام خصوصیات و رفتارهاش هم با خودش از بین میرند و حذف میشند، براتون یک مثال میزنم تا این موضوع رو  بهتر درک کنید:

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

دقت کنید در زبانی مثل C، تمرکز برنامه نویسی بر اجرا بود یعنی میگفتند باید بشه برنامه ها رو زودتر اجرا گرفت ولی در زبان های شی گرایی ساختار مهم تر از اجرا میباشد، به همین خاطر هم هستش که برنامه نویسی که مثلا با یک زیان شی گرایی داره کدنویسی می کنه میبینم که سه روزه داره کد مینویسه ولی هیچ خروجی نداره چون داره توی ذهنش ساختار ها و کلاس هایی رو آماده می کنه و میدونه که یه روزی این ها رو یجا توی یک پوشه ای کپی می کنه و پروژه میاد بالا!

برای اثبات پاراگراف قبل به این جمله دقت کنید، در زبان C ما اول تابع main رو مینوشتیم بعد اگر دوست داشتیم class ای هم تعریف می کردیم، ولی در زبانی مثل #C اگر دقت کنید تابع main شده متدی از خود اون کلاس، یعنی چه بخوام چه نخوایم تابع main در داخل یک کلاس وجود داره نه اینکه بخواد برای خودش جدا باشه، اگر شما متد main از کلاس داخل Program در زبان #C رو حذف کنید با چنین خطایی رو برو میشید”does not contain a static method for an entry point” یعنی این برنامه شامل یک تایع main نیست که نقطه شروع رو برای اون قرار بدم، پس میبینیم که این زبان یک زبان کاملا شی گرایی هستش.

نکته ای دیگه ای که به نظرم باید گره اون توی ذهن ها باز بشه اینکه PHP یا #C یا هر زبانی به طور ضمنی Bug ای ندارند، امن بودن یا نبودن یک سایت یا یک نرم افزار ربطی به زبانی که با اون پروژه ایجاد شده نداره زبان ها همه امن هستند و این برنامه نویس ها هستند که برنامه رو امن یا غیر امن می کنند، پس هیچوقت تلاش نکنید که بگید PHP امن نیست و #C امن هستش،  بعضی از دانشجوها می گن، PHP مگه Open Source نیست، خب دیگه همه دارن کد اون رو میبینن و راحت میشه هکش کرد، و چون مثلا ASP.NET خروجی .dll به ما میده دیگه نمیشه این .dll ها رو باز کرد، اول باید بگم همون .dll رو هم میشه به راحتی با یک سری برنامه ها باز کرد و دوباره کامپایل کرد و اینکه ما وقتی میتونیم یک برنامه رو هک کنیم که به سورس دسترسی داشته باشیم، برای اینکه توضیح بدم چطور میشه به سورس یک برنامه دسترسی داشت باید یک دوره دیگه برگزار بشه :-) فقط این رو بدونید تا وقتی یک وب سرور داره کار می کنه و کد رو ترجمه می کنه همیشه شما خروجی سورس رو خواهید دید نه خود سورس پروژه رو، چه این وب سرور IIS باشه و چه Apache.

خب فکر کنم مفاهیم اولیه زبان های شی گرایی رو تقرببا درک کردیم.

اگر از ما بپرسند نام چند زبان را نام ببرید که برای طراحی صفحات داینامیک وب به کار می روند تقریبا شاید ۸۰ درصد ما به C# and ASP.net,PHP و یا هر زبان دیگری که این قابلیت ها را دارد اشاره خواهیم کرد.

بهتره مفاهیم را جدا کنیم تا جایگاه هر کدام را بدانیم:

دوستان #C به نوعی ترکیبی از قابلیتهای خوب زبانهای C++ و avaJ است.

مثال ساده آن این است

int a=10;

یا حلقه for() یا if() یا هر دستور کد نویسی، اما وقتی می گوییم ASP جریان فرق میکند، همانطور که می دانیم ما می توانیم با زبانی(Syntax) مثل #C هم پروژه های از نوع دسکتاپ تولید کنیم هم تحت وب اما وقتی می گوییم ASP داریم به این اشاره می کنیم که یک سری کتابخانه های جدید در بخش وب خواهیم داشت پس خود کلمه ASP یک مفهموم می باشد و صرفا به کتابخانه های جدیدتر برای تولید صفحات وب اشاره می کند، برای PHP هم همین روال را داریم PHP یعنی

$a=’Hello’

یا foreach() یا هر دستور دیگه، اما وقتی می گوییم YiiFramewok داریم به این اشاره می کنیم که کتابخانه های به کمک ما در تولید صفحات وب با زبان PHP خواهند آمد. یک نکته بسیار مهم این است که یادتان باشد خود framework ها هم با زبان برنامه نویسی نوشته شده اند مثلا YiiFramework با زبان PHP ساخته شده است.

بسیار خوب حالا وقت آن میرسد تا توضیح بدهیم Framework چیست و تعریف آن چیست؟

Framework همانطور که از اسم آن مشخص است یعنی یک چارچوب کاری! در تعریف باید متذکر شد که Framework ها شامل یکسری کتابخانه های مفید می باشند که اولا باعث می شود سرعت کد نویسی ما بالا برود دوما از دوباره نویسی کدها جلوگیری می کند سوما یک بیس کاری را پشنهاد می دهد تا یک دسته بندی درست و بی نقص در پروژه خود داشته باشیم تا اگر روزی خواستیم پروژه ای را تولید کنیم همه چیز از هم گسسته نباشد، بلکه یک نظم کلی در پروژه داشته باشیم. فکر کنم همین دلایل کافی باشد تا لزوم استفاده از Framework ها چقدر می تواند مهم باشد. دوستان قبل از ایجاد Framework ها تولید شوند همه چیز در قالب function هایی بود که با وجود یک دسته بندی مشخص باز هم غیر قابل کنترل بودند و همه چیز در هم و بی نظم بود. با تولید Framework ها همه چیز شکل درستی به خود گرفت، بر این اساس شرکتی مثل microsoft یک چارچوب کلی به نام .Net را ایجاد کرد تا برنامه نویسان بعد از انتخاب زبان برنامه نویسی مثل C# یا VB به سادگی کتابخانه ها را در پروژه های خود اضافه کنند و در محیط های مختلف مثل دسکتاپ یا وب یا موبایل یا غیره شروع به توسعه برنامه های خود گکند، در این میان جامعه متن باز هم با این جریان حرکت کرده است و برای زبانPHP ای که شاید اوایل فقط یکسری تابع کاربردی برای نوشتن صفحات وب بود، Framework هایی تولید شد و در اختیار توسعه دهندگان وب قرار گرفت. دوستان عدم استفاده از Framework در بستری مثل PHP خللی در کار ایجاد نمی کند اما باید این رو قبول کرد که یا باید خود توسعه دهنده یک نظم مشخص به پروژه بدهد یا باید روشی را انتخاب کند که در طول پروژه به مشکلات متعدد برخورد نکند پس شما برای انتخاب کردن یا نکردن استفاده از Framework آزاد هستید و اجباری در کار نیست اما با وجود مزایای استفاده از این تکنیک فکر نکنم کسی حاضر به انتخاب نکردن آن باشد.

تاریخچه Yii

در گام بعد باید تاریخچه ای از YiiFramework را بیان کنیم و مزیت های استفاده از این چارچوب را نسبت به هم نوعان خود بررسی کنیم.

اگر توجه کرده باشید هر زبانی با داشتن یک Framework قوی قدرت پیدا می کند مثلا:

  • Java  با Spring قدرت پیدا کرد
  • Javascript با JQuery وGoogle Dart قدرت پیدا کرد
  • C# با .Net  قدرت پیدا کرد
  • Ruby با Rails قدرت پیدا کرد
  • و PHP هم با Yii

در سال ۲۰۰۸  شخصی به نام Qiang Xue، کسی که سالها روی فریم ورک PRADO کار کرده بود و به توسعه این فریم ورک open source کمک کرده بود به این نتیجه رسید که دیگر PRADO جایی برای پیشرفت ندارد و به گفته خودش بعد از PRADO تازه فهمید که چطور باید فریم ورک بسازد و اولین نسخه ی فریم ورک yii را منتشر کرد، هر ساله ورژن های بالاتری از این فریم ورک منتشر می شود .

Yii مخفف سه کلمه Yes It Is! می باشد، که در پاسخ به سوالاتی همچون: آیا اون سریع است؟ آیا اون یک فریم ورک امن است؟ آیا اون یک فریم ورک حرفه ای است؟ آیا این فریم ورک مناسب برای پروژه ی بعدی من هست؟ و در جواب به تمام این سوالات باید گفت:

Yes It Is! بله اون هست

Yii یک فریم ورک مبتنی بر component و به دلیل پشتیبانی از بحث caching مناسب برای ساخت سایت های پر ترافیک مثل پورتال ها و فروم ها و CMS ها و.. می باشد.

توانایی گسترش و توسعه و ارتباط آسان بین دیگر فریم ورک ها و پشتیبانی از ajax را نیز می توان از جمله قابلیت های این فریم ورک نام برد.

یکی دیگر از قابلیت های بسیار مهمyii،  پشتیبانی عالی از ساختار MVC  یا همان Model View Controller می باشد.

Yii با دو نسخه ی اصلی ۱ و ۲ قابل دانلود و استفاده می باشد نسخه ۱ آن تا نسخه ۱٫۱٫۱۴ پیش رفت و بعد از آن وارد نسخه ۲ شد، اینکه از ۱ به ۲ تغییر نسخه داشته ایم بی دلیل نبوده است. برای یادآوری هر عددی که برای نسخه نسبت داده می شود بر این قانون است:

A.B.C

Major Version

Minor Version

Build Number

 همانطور که می دانیم تغییر نسخه تابع شرایطی خاصی می باشد و اینکه نسخه ۱ که نسخه Major می باشد به ۲ تغییر کرده است یعنی یک تغییراتی اساس در کل پروژه بوده مثلا بحث namesapce که در نسخه ۱ پشتیبانی نمی شد در نسخه ۲ پوشش داده شده است و کل پروژه نیز تحت تاثیر خود قرار داده است به عنوان مثال دوم ترتیب و چینش فایل ها و پوشه های Framework در نسخه ۲ تغییرات عمده ای نسبت به نسخه ۱داشته است.

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

انتظار می رود که شما بعد از خواند این بخش بتوانید جایگاه و مفهوم Syntax و Framework را به طور کامل درک کنید.

پایان بخش اول آموزش Yii

فقط این را یادتان باشد که چرا از Yii استفاده می کنیم

در ضمن فریم ورک های دیگری هم وجود دارند اما این یکی از آنها کاریرپسند تره

آموزش فریم ورک های دیگر و آشنایی با اونها رو هم قرار میدم به امید خدا

نمونه ای از آخرین کارهای ما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اگر ربات نیستی جواب بده *

پشتیبانی سایت سئو سایت

خدمات سایت

سئو

خدمات سایت

پشتیبانی سایت سئو سایت خدمات سایت