Yii Framework

10 downloads 8737 Views 2MB Size Report
CakePHP. ثطای ایؼبز سغبثك ثب ٘ؿرٝ ٞبی. 4. ٘بچبض٘س وٝ ذیّی اظ لبثّیز ٞبی ..... schema.mysql.sql the DB schema for the sample MySQL database.
‫‪Yii Framework‬‬ ‫هشرغ فبسعی ّ ساٌُوبی ػولی اعتفبدٍ‬

‫ثشای اًتؾبس دس ّة‬ ‫تبثغتبى ‪0991‬‬ ‫تشروَ ّ تبلیف ‪ :‬ػلی ثشریبى‬

0

‫ایي کتبة ثشای اعتفبدٍ دس ایٌتشًت ّ ثَ فْست سایگبى اسائَ ؽذٍ اعت‪.‬‬ ‫ُشگًَْ اعتفبدٍ اص هغبلت ثب رکش هٌجغ ثالهبًغ اعت‪.‬‬

‫‪2‬‬

‫‪.1‬‬

‫‪.2‬‬

‫‪.3‬‬

‫‪.4‬‬

‫مقذمو‬ ‫‪ FrameworkYii .a‬چیغت؟‬ ‫‪ .b‬ثشخی اص ّیژگی ُبی ‪Yii Framework‬‬ ‫‪ .c‬پیؼ ًیبصُبی لجل اص ؽشّع کبس‬ ‫‪ .d‬چَ ثشًبهَ ُبیی سا ثب ‪ Yii‬هی تْاى تْلیذ کشد‬ ‫‪ً .e‬قت ‪Yii Framework‬‬ ‫‪ .f‬عبخت اّلیي پشّژٍ‬ ‫‪ .g‬اثضاس خظ فشهبى‪yiic‬‬ ‫‪ .h‬پْؽَ ُب ّ فبیلِبی عبختَ ؽذٍ‬ ‫‪ .i‬هضیظ هٌبعت ثشای کذ ًْیغی‬ ‫‪ .j‬هشاصل دٍ گبًَ تْلیذ ثشًبهَ‬ ‫‪ .k‬چِبس لغوت افلی ُش ثشًبهَ‬ ‫‪ ً MVC‬اجرای برنامو‬ ‫‪ MVC .a‬چیغت‬ ‫‪Application .b‬‬ ‫‪Entry Script .c‬‬ ‫‪Bootstrap .d‬‬ ‫‪Config .e‬‬ ‫‪ .f‬اًْاع صبلت ارشای ثشًبهَ‬ ‫‪ .g‬هشاصل عبخت ثشًبهَ‬ ‫‪ .h‬هشاصل ارشای یک ثشًبهَ‬ ‫کنترلر‬ ‫‪ً .a‬وْداس اسث ثشی ُبی کٌتشلشُب‬ ‫‪ .b‬هؼشفی کٌتشلش‬ ‫‪ .c‬پبساهتشُبی خْدکبس اکؾي‬ ‫‪ .d‬پبساهتشُبی ػوْهی لبثل تؼشیف دس کٌتشلش‬ ‫‪ .e‬هتذُبی لبثل اعتفبدٍ دس کٌتشلش‬ ‫‪ .f‬هتذ تؼشیف ؽذٍ ‪loadModel‬‬ ‫‪ .g‬هذیشیت دسخْاعتِبی کبسثش‬ ‫‪ً .h‬کبتی دس هْسد کٌتشلشُب‬ ‫مذل ىا‬ ‫‪ً .a‬وْداس اسث ثشی ُبی هذل‬ ‫‪ .b‬اًْاع هذل‬ ‫‪ .c‬هتذ ُبی تؼشیف ؽذٍ دس ‪ ّ CModel‬لبثل اعتفبدٍ دس کلیَ کالعِبی هذل‬ ‫‪ .d‬اًْاع ‪Validator‬‬ ‫‪ُ alias .e‬بی هؼشّف ثشای اػتجبس عٌزی‬ ‫‪ .f‬چٌذ هخبل اص اػتجبس عٌزی ُب‬ ‫‪ً .g‬ضٍْ تؼشیف ّ اعتفبدٍ اص ‪Capcha‬‬ ‫‪ .h‬عٌبسيْ ُب يب عیبعت ُبي اػتجبس عٌزي‬ ‫‪Safe Attributes .i‬چیغت‬ ‫‪ .j‬پیبهِبي خغبي فبدس ؽذٍ‬ ‫‪ .k‬تؼییي پیبم خغب‬ ‫‪ .l‬هتذ ُبی تؼشیف ؽذٍ دس ‪ ّCActiveRecord‬لبثل اعتفبدٍ دس کالعِبی هذل ًْع‬ ‫‪CActiveRecord‬‬ ‫‪9‬‬

‫‪ .m‬هتذ ُب ّ هتغیشُبی تؼشیف ؽذٍ دس ‪ class CActiveRecordMetaData‬هْرْد دس فبیل‬ ‫‪CActiveRecord‬‬ ‫‪ .n‬دعتشعی ثَ هذل اص عشیك کٌتشلش‬ ‫‪ً .o‬کبت الصم دس عشاصی هذل‬ ‫‪ً .5‬یٌ ىا‬ ‫‪ .a‬هؼشفی ّیْ ُب‬ ‫‪ .b‬اسعبل پبساهتشُب ّ همبدیش آًِب اص کٌتشلش ثَ ّیْ‬ ‫‪ .c‬فشاخْاًی یک ّیْ دس ّیْ دیگش‬ ‫‪ .d‬دعتشعی ثَ کٌتشلش اص داخل ّیْ‬ ‫‪ .e‬دعتشعی ثَ ّیْ اص عشیك کٌتشلش‬ ‫‪ .f‬دعتشعی ثَ خشّری هذل دس ّیْ‬ ‫‪ً .g‬کبت الصم دس عشاصی ‪view‬‬ ‫‪ .h‬هؼشفی لبلت ُب‬ ‫‪ .i‬لشاس دادى یک ‪ layout‬دسّى ‪ layout‬دیگش‬ ‫‪Partial view .j‬‬ ‫‪System View .k‬‬ ‫‪Widget .l‬‬ ‫‪ .m‬عبخت یک ‪ Widget‬دلخْاٍ‬ ‫‪Customizing Widgets Globally .n‬‬ ‫‪Portlet .o‬‬ ‫‪CActiveDataProvider .p‬‬ ‫‪ .q‬کالط ‪CHtml‬‬ ‫‪Theming .r‬‬ ‫‪ .6‬بانک ىای اطالعاتی‬ ‫‪ .a‬اًْاع سّػ کبس ثب ثبًک اعالػبتی‬ ‫‪ .b‬اتقبل ثَ ثبًک اعالػبتی‬ ‫‪DAO .c‬‬ ‫‪ .i‬ارشای دعتْسات ‪SQL‬‬ ‫‪ .ii‬فشاخْاًی ًتبیذ‬ ‫‪ً .iii‬ضٍْ کبس ثب تشاکٌؼ ُب‬ ‫‪ .iv‬اًمیبد پبساهتش ُب‬ ‫‪ .v‬اًمیبد فیلذُب‬ ‫‪ .vi‬اعتفبدٍ اص ‪Table Prefix‬‬ ‫‪Query Builder .d‬‬ ‫‪ .i‬هضایبی سّػ ‪Query Builder‬‬ ‫‪ .ii‬ایزبد دعتْسات‬ ‫‪ .iii‬ایزبد پشط ّ رْ ُب‬ ‫‪ .iv‬ارشای پشط ّ رْ ُب‬ ‫‪ .v‬ثَ دعت آّسدى ػجبست ‪ SQL‬ایزبد ؽذٍ‬ ‫‪ .vi‬ثَ کبس ثشدى دعتْسات ربیگضیي‬ ‫‪ .vii‬کبس ثب چٌذ پشط ّ رْ‬ ‫‪ .viii‬پشط ّ رْ ُبی کبس ثب دادٍ‬ ‫‪ .ix‬پشط ّ رْ ُبی کبس ثب عبختبس‬ ‫‪Active Record .e‬‬ ‫‪ .i‬اتقبل ثَ ثبًک اعالػبتی‬ ‫‪4‬‬

‫‪ .ii‬تؼشیف ‪AR Class‬‬ ‫‪ .iii‬عبخت سکْسُب‬ ‫‪ .iv‬دعتشعی ثَ همذاس یک فیلذ اص سکْسد‬ ‫‪ .v‬اعتفبدٍ اص تْاثغ ُبعت‬ ‫‪ .vi‬ثَ سّص سعبًی سکْسدُب خْاًذى سکْسد ُب‬ ‫‪ .vii‬صزف سکْسد ُب‬ ‫‪ .viii‬اػتجبس عٌزی دادٍ ُب‬ ‫‪ .ix‬چٌذ هتذ هفیذ دس کالط هذل‬ ‫‪ .x‬ثَ کبسگیشی تشاکٌؼ ُب دس ‪AR‬‬ ‫‪Named Scopes .xi‬‬ ‫‪ .f‬ثبًک اعالػبتی ساثغَ ای‬ ‫‪ً .i‬ضٍْ تؼشیف یک ساثغَ دس هذل‬ ‫‪ .ii‬ارشای پشط ّ رْ ُبی ساثغَ ای‬ ‫‪ .iii‬ارشای پشط ّ رْ ُبی ساثغَ ای ثذّى اعتفبدٍ اص هذل ُبی داسی ساثغَ‬ ‫‪ .iv‬گضیٌَ ُبی پشط ّ رْ ُبی ساثغَ ای‬ ‫‪ .v‬فیلذ ُبی ثب ًبم تکشاسی‬ ‫‪ .vi‬گضیٌَ ُبی پشط ّ رْی ساثغَ ای پْیب‬ ‫‪ .vii‬کبسایی پشط ّ رْ ُبی دس ساثغَ‬ ‫‪ .viii‬پشط ّ رْ ُبی اعتبتیک‬ ‫‪ .ix‬پشط ّ رْ ُبی ساثغَ ای ثب ‪Named Scopes‬‬ ‫‪ .x‬پشط ّ رْ ُبی ساثغَ ای ثب ‪through‬‬ ‫‪ .g‬هِبرشات ثبًک اعالػبتی‬ ‫‪ .7‬ماژًل ىا ً کامپٌننت ىا‬ ‫‪ .a‬هؼشفی هبژّل‬ ‫‪ .b‬هضایبی اعتفبدٍ اص هبژّل‬ ‫‪ .c‬عبخت یک هبژّل رذیذ‬ ‫‪ً .d‬ضٍْ اعتفبدٍ اص هبژّل‬ ‫‪ .e‬هؼشفی کبهپًٌْت ُب‬ ‫‪ً .f‬ضٍْ دعتشعی ثَ یک ‪Component‬‬ ‫‪ .g‬اًْاع ‪Component‬‬ ‫‪ .h‬تؼشیف ّاعتفبدٍ اص یک کبهپًٌْت‬ ‫‪ .i‬کبهپًٌْت ُبی پیؼ فشك‬ ‫‪ .8‬تشخیص ىٌیت کاربر‬ ‫‪ .a‬تؾخیـ ُْیت کبسثش ّ صذّد دعتشعی‬ ‫‪ .9‬فرم ىا‬ ‫‪ .a‬هؼشفی فشم ُب‬ ‫‪ً .b‬ضٍْ ایزبد فشم رذیذ‬ ‫‪ .c‬یک فشم ّ چٌذ هذل‬ ‫‪Caching .11‬‬ ‫‪ .a‬هؼشفی ‪caching‬‬ ‫‪Data Caching .b‬‬ ‫‪ّ .c‬اثغتگی کؼ‬ ‫‪Fragment caching .d‬‬ ‫‪ .e‬گضیٌَ ُبی کؼ‬ ‫‪ّ .f‬اثغتگی دادٍ ُب‬ ‫‪5‬‬

‫‪ .g‬تٌْع دادٍ ُب‬ ‫‪ .h‬دسخْاعت ًْع‬ ‫‪ .i‬کؼ کشدى تْ دس تْ‬ ‫‪Page Caching .j‬‬ ‫‪ .k‬هضتْای پْیب‬ ‫‪ .11‬تٌسعو ‪yii‬‬ ‫‪ .a‬هؼشفی تْعؼَ ُب‬ ‫‪ .b‬اعتفبدٍ اص تْعؼَ ُب‬ ‫‪ .c‬ایزبد تْعؼَ ُب‬ ‫‪ .d‬عبخت تْعؼَ ُبی گًْبگْى‬ ‫‪ .e‬اعتفبدٍ اص کتبثخبًَ ُبی ‪rd-Party9‬‬ ‫‪ .12‬تست‬ ‫‪ .a‬اًْاع سّػ تغت‬ ‫‪TDD .b‬‬ ‫‪ .c‬تغت ‪Bootstrap‬‬ ‫‪ .13‬مذیریت آدرسيا‬ ‫‪ .a‬ایزبد ‪ُ URL‬ب‬ ‫‪ .b‬اعتفبدٍ اص پبساهتشُبی ًبم گضاسی ؽذٍ‬ ‫‪ .c‬هخفی کشدى ‪index.php‬‬ ‫‪ .14‬مثال ىا‬ ‫‪ .15‬ضمیمو ىا‬

‫‪6‬‬

‫سخه مًلف ‪:‬‬ ‫‪ٞ‬ط ض‪ٚ‬ظ قب‪ٞ‬س دیكطفش‪ٟ‬بی ػسیسی زض ح‪ٛ‬ظ‪ ٜ‬ف‪ٙ‬ب‪ٚ‬ضی اعالفبر ٔی ثبقیٓ‪ٕٞ .‬عٔبٖ ثب س‪ٛ‬ؾق‪ ٝ‬ؾرز افعاض ‪ٞ‬ب ‪ٚ‬‬ ‫س‪ِٛ‬یس لغقبر ثب لبثّیز ‪ٞ‬بی دیكطفش‪٘ ،ٝ‬طْ افعاض ‪ٞ‬ب ٘یع ث‪ ٝ‬ن‪ٛ‬ضر ٔ‪ٛ‬اظی دیكطفز ٔی و‪ٙٙ‬س‪٘ .‬طْ افعاض ‪ٞ‬بیی و‪ٝ‬‬ ‫‪ٞ‬ط وساْ فضب‪ٞ‬بی ػسیسی ضا زض اذشیبض وبضثطاٖ ذ‪ٛ‬ز لطاض ٔی ز‪ٙٞ‬س ‪ ٚ‬زض ایٗ ٔیبٖ ؾ‪ ٟٓ‬ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ ‪ٚ‬‬ ‫عطاحبٖ ‪ٚ‬ة ث‪ ٝ‬ف‪ٛٙ‬اٖ س‪ِٛ‬یس و‪ٙٙ‬سٌبٖ ٘طْ افعاض ثؿیبض ثیكشط اؾز‪.‬‬ ‫فطیٓ ‪ٚ‬ضن ‪ Yii‬یه ثؿشط ٘طْ افعاضی ثب ؾطفز ‪ ٚ‬ثبظز‪ٞ‬ی ثؿیبض ثبال اؾز و‪ ٝ‬ث‪ٚ ٝ‬ؾیّ‪ ٝ‬ظثبٖ ‪ PHP‬س‪ٛ‬ؾق‪ٝ‬‬ ‫یبفش‪ ٝ‬اؾز ‪ ٚ‬س‪ٛ‬ا٘بیی س‪ِٛ‬یس ا٘‪ٛ‬اؿ ٘طْ افعاض‪ٞ‬بی سحز ‪ٚ‬ة ثب ٔمیبؼ ‪ٞ‬بی ٌ‪٘ٛ‬بٌ‪ ٖٛ‬ضا زاضا ٔی ثبقس‪.‬‬ ‫‪ٞ‬سف اظ سبِیف ایٗ وشبة وٕه ث‪ ٝ‬دیكطفز ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ فبضؾی ظثب٘ی اؾز و‪ ٝ‬ث‪ ٝ‬سبظٌی وبض ثب ایٗ ٘طْ افعا‬ ‫ضا آغبظ ٕ٘‪ٛ‬ز‪ ٜ‬ا٘س ‪ ٚ‬لهس آق‪ٙ‬بیی ثب ایٗ ٔحیظ ٘طْ افعاضی ضا زاض٘س ‪ٕٞ‬چ‪ٙ‬یٗ ؾقی قس‪ ٜ‬اؾز سب حس أىبٖ‬ ‫ػعئیبر ٔغبِت ٘یع ِحبػ ق‪ٛ‬ز سب وشبة ث‪ ٝ‬ن‪ٛ‬ضر یه ٔطػـ ثطای ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ سجسیُ ق‪ٛ‬ز‪.‬‬ ‫ایٗ وشبة قبُٔ سطػٕ‪ٞ ٝ‬بیی اؾز و‪ ٝ‬فی‪ٙ‬ب اظ ضا‪ٕٙٞ‬بی فّٕی فطیٓ ‪ٚ‬ضن زض ؾبیز ضؾٕی ‪ ٚ‬وشبة ‪ٞ‬بی‬ ‫ٔ‪ٙ‬شكط قس‪ ٜ‬زض ایٗ ٔ‪ٛ‬ضز ثطٌطزاٖ قس‪ ٜ‬اؾز ‪ٕٞ‬چ‪ٙ‬یٗ ضا‪ٕٙٞ‬بی وس‪ٞ‬بی زاذُ فبیّ‪ٟ‬بی فطیٓ ‪ٚ‬ضن ٘یع ٔ‪ٛ‬ضز‬ ‫س‪ٛ‬ػ‪ ٝ‬لطاض ٌطفش‪ ٝ‬اؾز ‪ ٚ‬زض ٔ‪ٛ‬اضز ا٘سوی سؼطثیبر ‪ٔ ٚ‬ظبِ‪ٟ‬بی فّٕی ٔ‪ِٛ‬ف آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬ ‫سب ایٗ سبضید و‪٘ ٝ‬ؿر‪ 1.1.8 ٝ‬فطیٓ ‪ٚ‬ضن اضائ‪ ٝ‬قس‪ ٜ‬ؾقی قس‪ ٜ‬اؾز ٔغبِت ث‪ ٝ‬ن‪ٛ‬ضر یىذبضچ‪ٙٔ ٚ ٝ‬ؾٓ اضائ‪ٝ‬‬ ‫ق‪ٛ‬ز ‪ ٚ‬وّی‪ ٝ‬أىب٘بر ٘ؿر‪ٞ ٝ‬بی لجّی د‪ٛ‬قف زاز‪ ٜ‬ق‪ٛ‬ز‪.‬‬ ‫ٔغٕئ‪ٙ‬ب ایٗ وشبة ٘یع زاضای اقىبالسی ٔی ثبقس و‪ ٝ‬ثب ضا‪ٕٙٞ‬بیی ‪ ٚ‬س‪ٛ‬ػ‪ ٝ‬قٕب زض ٘ؿر‪ٞ ٝ‬بی ثقسی انالح‬ ‫ذ‪ٛ‬ا‪ٞ‬س قس‪ .‬زض ن‪ٛ‬ضر زاقشٗ ‪ٞ‬طٌ‪ ٝ٘ٛ‬ؾ‪ٛ‬اَ‪٘ ،‬ؾط ‪ ٚ‬یب دیك‪ٟٙ‬بز ِغفب اظ عطیك آزضؼ ایٕیُ‬ ‫‪ [email protected]‬آٖ ضا ثب ٔ‪ِٛ‬ف زض ٔیبٖ ثٍصاضیس‪.‬‬ ‫أیس‪ٚ‬اضْ ایٗ وشبة ثش‪ٛ‬ا٘س ٌبٔی ‪ٞ‬طچ‪ٙ‬س و‪ٛ‬چه زض ضا‪ ٜ‬اضسمبی فّٕی ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ فبضؾی ظثبٖ ثطزاقش‪ٝ‬‬ ‫ثبقس‪.‬‬ ‫فّی ثطػیبٖ‬ ‫ق‪ٟ‬طی‪ٛ‬ض ‪1390‬‬

‫‪7‬‬

‫‪ Yii Framework‬چیست؟‬ ‫یىی اظ ذ‪ٛ‬اؾش‪ٞ ٝ‬بی ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ ‪ ٚ‬عطاحبٖ ؾبیز ‪ٞ‬بی ای‪ٙ‬شط٘شی ا٘شربثیه‪ٙٔ Platform‬بؾت ثطای دیبز‪ٜ‬‬ ‫ؾبظی ؾبیز ‪ٞ‬ب‪ ،‬ثط٘بٔ‪ٞ ٝ‬بی سحز ‪ٚ‬ة ‪ ٚ‬د‪ٛ‬ضسبَ ‪ٞ‬ب ٔی ثبقس‪ .‬قبیس ثطای وبضثطاٖ ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ ‪ ٚ‬فٕ‪ٔٛ‬ب ثط٘بٔ‪ٝ‬‬ ‫٘‪ٛ‬یؿبٖ ‪ٌ ASP.NET‬عی‪ٞ ٝٙ‬بی ظیبزی ثطای ا٘شربة ٔغطح ٘جبقس ‪ MS dotNet Framework ٚ‬ث‪ٝ‬‬ ‫ف‪ٛٙ‬اٖ ‪ Platform‬انّی ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٌیطز‪ .‬أب ثطای ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ ػبٔق‪ٔ ٝ‬شٗ ثبظ ث‪ ٝ‬ذه‪ٛ‬ل ثط٘بٔ‪ٝ‬‬ ‫٘‪ٛ‬یؿبٖ ‪ PHP‬ا٘شربة یه ‪ٙٔ Platform‬بؾت ٔمساضی دیچیس‪ ٜ‬اؾز‪ .‬دیسا وطزٖ ‪ٙٔ Platform‬بؾت ثطای‬ ‫ثط٘بٔ‪ٛ٘ ٝ‬یؿب٘ی و‪ ٝ‬ؾغح ٔش‪ٛ‬ؾظ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ‪ PHP‬ضا دكز ؾط ٌصاقش‪ ٝ‬ا٘س ‪ ٚ‬لهس ‪ٚ‬ض‪ٚ‬ز ث‪ ٝ‬فضب‪ٞ‬بی ػسیس‬ ‫ثب لبثّیز ‪ٞ‬بی ثیكشط ضا زاض٘س أطی ٔ‪ ٟٓ‬ث‪ ٝ‬قٕبض ٔی ض‪ٚ‬ز‪.‬قبیس ٘بْ ثؿیبضی اظ ایٗ ‪ٞ Platform‬ب ضا ق‪ٙ‬یس‪ٜ‬‬ ‫ثبقیس و‪ ٝ‬اِجش‪ ٝ‬سقساز آ٘‪ٟ‬ب وٓ ‪٘ ٓٞ‬یؿش‪ٙ‬س ٔب٘‪ٙ‬س ‪ZooP - Zend - Prado - CakePHP:‬‬

‫فطیٓ ‪ٚ‬ضن ‪( Yii‬ذ‪ٛ‬ا٘س‪ٔ ٜ‬ی ق‪ٛ‬ز ای ٔب٘‪ٙ‬س حطف ‪ E‬وكیس‪ ٜ‬یب سّفؼ ‪٘ )Yee‬یع ‪ٕٞ‬ب٘‪ٙ‬س ؾبیط ایٗ ثط٘بٔ‪ٞ ٝ‬ب‬ ‫یه ‪ Platform‬ثطای اؾشفبز‪ ٜ‬ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ ‪ PHP‬اؾز و‪ ٝ‬زض ؾبَ ‪ 2008‬س‪ٛ‬ؾظ سقسازی اظ ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ‬ ‫ٔؼطة ‪ ٚ‬حطف‪ ٝ‬ای و‪ٔ ٝ‬سر ظٔبٖ ظیبزی ضا ثط ض‪ٚ‬ی دط‪ٚ‬غ‪ٞ ٜ‬بی س‪ٛ‬ؾق‪ٔ( PHP Frameworks ٝ‬ظُ دط‪ٚ‬غ‪ٜ‬‬ ‫‪ ) Prado‬نطف وطز‪ ٜ‬ث‪ٛ‬ز٘س فطض‪ ٝ‬قس‪ .‬ایٗ دط‪ٚ‬غ‪ٞ ٜ‬ط چ‪ٙ‬س فٕط ع‪ٛ‬ال٘ی ٘ساضز ‪ِٚ‬ی ث‪ ٝ‬لسضی ٔ‪ٛ‬طط ‪ٚ‬الـ قس‪ ٜ‬و‪ٝ‬‬ ‫زض ٔسر و‪ٛ‬سب‪ٞ‬ی س‪ٛ‬ا٘ؿش‪ ٝ‬اؾز ٘ؾط ثؿیبضی اظ س‪ٛ‬ؾق‪ ٝ‬ز‪ٙٞ‬سٌبٖ ‪ٚ‬ة ضا ث‪ ٝ‬ذ‪ٛ‬ز ػّت ٕ٘بیس‪ Yii .‬ثؿیبضی اظ‬ ‫لبثّیز ‪ٞ‬بی دط‪ٚ‬غ‪ٛٔ ٜ‬فك ‪ Prado‬ضا ث‪ ٝ‬اضص ثطز‪ ٜ‬اؾز‪ .‬دط‪ٚ‬غ‪ Yii ٜ‬س‪ٛ‬ؾظ قطوز ‪ Yii Software LLC‬یب‬ ‫‪ YiiSoft‬اضائ‪ ٝ‬قس‪ ٜ‬اؾز‪Yii Framework .‬یه ٘طْ افعاض ضایٍبٖ ٔی ثبقس و‪ٌٛ ٝ‬ا‪ٞ‬ی‪ٙ‬بٔ‪BSD ٝ‬‬ ‫‪ License‬ضا ٘یع اذص ٕ٘‪ٛ‬ز‪ ٜ‬اؾز‪.‬‬ ‫بزخی اس يیضگی َای ‪Yii Framework‬‬ ‫‪ Yii‬س‪ٟٙ‬ب اظ ‪٘ PHP‬ؿر‪ ٚ 5 ٝ‬ثبالسط دكشیجب٘ی ٔی و‪ٙ‬س‪ .‬زض ٔمبیؿ‪ ٝ‬ثب فطیٓ ‪ٚ‬ضو‪ٟ‬بیی ٔب٘‪ٙ‬س ‪ CakePHP‬و‪ ٝ‬اظ‬ ‫‪٘PHP 4‬یع دكشیجب٘ی ٔی و‪ٙٙ‬س ایٗ ٔؿئّ‪ ٝ‬یه وٕج‪ٛ‬ز ث‪٘ ٝ‬ؾط ٔیطؾس ‪ِٚ‬ی ‪ٕٞ‬یك‪ ٝ‬ای‪ٙ‬غ‪ٛ‬ض ٘یؿز‪ .‬فطیٓ‬ ‫‪8‬‬

‫‪ٚ‬ضو‪ٟ‬بیی ٔب٘‪ٙ‬س ‪ CakePHP‬ثطای ایؼبز سغبثك ثب ٘ؿر‪ٞ ٝ‬بی ‪٘ 4‬بچبض٘س و‪ ٝ‬ذیّی اظ لبثّیز ‪ٞ‬بی ٘ؿر‪ 5 ٝ‬ضا‬ ‫٘بزیس‪ ٜ‬ثٍیط٘س یب ث‪ ٌٝ٘ٛ ٝ‬ای آ٘‪ٟ‬ب ضا سغییط ز‪ٙٞ‬س و‪ ٝ‬ثبفض ایؼبز سغبثك ٌطزز ‪ِٚ‬ی ‪ Yii Framework‬ثب‬ ‫سٕطوع ثط ض‪ٚ‬ی ٘ؿر‪ PHP 5 ٝ‬اظ ‪ ٕٝٞ‬لبثّیز ‪ٞ‬بی آٖ اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س ‪ ٚ‬ایٗ ٔؿئّ‪ ٝ‬زض ؾبَ ‪ 2011‬و‪ ٝ‬اوظط‬ ‫ٔیعثب٘‪ٟ‬ب اظ ‪ PHP 5‬حٕبیز ٔی و‪ٙٙ‬س ٘‪ ٝ‬س‪ٟٙ‬ب یه وٕج‪ٛ‬ز ٘یؿز ثّى‪ ٝ‬یه ٔعیز ث‪ ٝ‬قٕبض ٔی ض‪ٚ‬ز‪.‬‬

‫زض ؾبذز فطیٓ ‪ٚ‬ضن ‪Yii‬اظ اٍِ‪ٛ‬ی عطاحی ‪ MVC‬اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز‪ٔ MVC.‬سِی اؾز و‪ ٝ‬زض ٔ‪ٟٙ‬سؾی‬ ‫٘طْ افعاض ٔقطفی ٔی ق‪ٛ‬ز ‪ ٚ‬زض ایٗ ٔسَ اػعای ثط٘بٔ‪ ٝ‬ث‪ ٝ‬ؾ‪ ٝ‬لؿٕز انّی و‪ٙ‬شطَ و‪ٙٙ‬س‪ٔ– ٜ‬سَ–‬ ‫زیسٌب‪1ٜ‬سمؿیٕٕیك‪٘ٛ‬س‪ٚ‬ػطیب٘ساز‪ٟٞ‬بزضآ٘جطلطاضٔیك‪ٛ‬ز‪ Yii .‬سٕبٔی ل‪ٛ‬افس ‪ MVC‬ضا ضفبیز وطز‪ ٜ‬اؾز اٍِ‪ٛ‬ی‬ ‫وبضی ‪ MVC‬زض قىُ ظیط آٔس‪ ٜ‬اؾز‪:‬‬

‫یه ٔحیظ وبٔال قی ٌطا‪ .‬زض ‪ Yii‬قی ٌطایی ث‪ ٝ‬ف‪ٛٙ‬اٖ یه انُ ا‪ِٚ‬ی‪ ٝ‬ضفبیز قس‪ ٜ‬اؾز ‪ ٚ‬زؾشطؾی ث‪ٕٝٞ ٝ‬‬ ‫چیع حشی زؾشطؾی ث‪ ٝ‬ػسا‪ َٚ‬ثب٘ه اعالفبسی ‪ ٚ‬ض‪ٚ‬اثظ ‪٘ ... ٚ‬یع زض لبِت قی ٌطایی سقطیف ٔی ق‪ٛ‬ز و‪ ٝ‬ایٗ‬ ‫ٔؿئّ‪ ٝ‬زض ٔمبثُ فطیٓ ‪ٚ‬ضو‪ٟ‬بیی ٔظُ ‪ CakePHP‬و‪ٕٞ ٝ‬چ‪ٙ‬بٖ اظ زؾشطؾی ‪ٞ‬بی ضاثغ‪ ٝ‬ای دكشیجب٘ی ٔی‬ ‫و‪ٙٙ‬س یه ٔعیز فٕس‪ ٜ‬اؾز‪.‬‬

‫‪9‬‬

‫اظ لبثّیز ثط٘بٔ‪ٛ٘ ٝ‬یؿی ‪ generic‬حٕبیز ٔی و‪ٙ‬س‪ generic.‬یه لبثّیز ثط٘بٔ‪ٛ٘ ٝ‬یؿی اؾز و‪ٞ ٝ‬سف اظ آٖ‬ ‫دكشیجب٘ی اظ ا٘‪ٛ‬اؿ زاز‪ٞ ٜ‬بی ‪ٚ‬ض‪ٚ‬زی ثس‪ ٖٚ‬لیس ٔحس‪ٚ‬زیز ٘‪ٛ‬ؿ اؾز ‪ ٚ‬ث‪ ٝ‬ف‪ٛٙ‬اٖ یىی اظ ض‪ٚ‬ق‪ٟ‬ب ‪ ٚ‬سى‪ٙ‬یه ‪ٞ‬بی‬ ‫٘‪ٛ‬یٗ ثط٘بٔ‪ٛ٘ ٝ‬یؿی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز‪.‬‬ ‫‪ٕٞ‬ب‪ٍٙٞ‬ی ثب ‪ JQuery .JQuery‬یه ‪ Platform‬ثطاؾبؼ ظثبٖ ‪ JavaScript‬اؾز و‪ ٝ‬لبثّیز ‪ٞ‬بی ف‪ٛ‬ق‬ ‫اِقبز‪ ٜ‬ثهطی ضا زض ٔحیظ وبضی وبضثط ایؼبز ٔی و‪ٙ‬س‪ Yii Framework .‬ثب ایٗ ‪ٕٞ Platform‬ب‪ٍٙٞ‬ی ‪ٚ‬‬ ‫اضسجبط ٔؿشمیٕی ضا ایؼبز ٔی و‪ٙ‬س ‪ ٚ‬أىبٖ اؾشفبز‪ ٜ‬اظ لبثّیز ‪ٞ‬بی ‪ AJAX‬ضا فطا‪ٔ ٓٞ‬ی و‪ٙ‬س‪.‬‬

‫اظ ‪ ORM‬دكشیجب٘ی ٔی و‪ٙ‬س‪ Object Relational Mapping.‬ض‪ٚ‬قی ثطای سغبثك ثب قی ٌطایی اؾز‪ .‬اظ‬ ‫آ٘ؼبیی و‪ ٝ‬ثب٘ه اعالفبسی ‪ MySQL‬یه ثب٘ه اعالفبسی ضاثغ‪ ٝ‬ای اؾز ِصا زض ض‪ٚ‬ـ ‪ ORM‬یه ثب٘ه‬ ‫اعالفبسی ٔؼبظی اظ ثب٘ه انّی ‪ MySQL‬ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز ‪ ٚ‬فّٕیبر ثط ض‪ٚ‬ی آٖ ثب اؾشفبز‪ ٜ‬اظ ض‪ٚ‬ـ قی ٌطا‬ ‫ا٘ؼبْ ٔی ق‪ٛ‬ز ‪ ٚ‬ؾذؽ ایٗ ثب٘ه اعالفبسی ٔؼبظی ثط ض‪ٚ‬ی ثب٘ه انّی ‪ٔ Update‬ی ق‪ٛ‬ز‪ .‬ثطای ثط٘بٔ‪ٝ‬‬ ‫٘‪ٛ‬یؿبٖ ‪ .NET‬ایٗ ٔ‪ٛ‬ض‪ٛ‬ؿ آق‪ٙ‬ب اؾز ‪ ٚ‬زض ‪ٔ ADO.NET‬ف‪ ْٟٛ‬ثب٘ه اعالفبسی ٔؼبظی زض لبِت ‪Dataset‬‬ ‫اضائ‪ٔ ٝ‬ی ق‪ٛ‬ز‪.‬‬ ‫اؾشفبز‪ ٜ‬اظ حبِز ‪ Caching‬دیكطفش‪ Yii. ٝ‬اظ یه حبِز ‪ Caching‬ثؿیبض دیكطفش‪ ٝ‬ثطای وبض ثب ثب٘ه‬ ‫اعالفبسی اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س و‪ ٝ‬یه ٔعیز فٕس‪ ٜ‬اؾز ‪ ٚ‬ثبفض ؾجه قسٖ فضبی وبضی ‪ ٚ‬افعایف ثؿیبض ظیبز‬ ‫ثبظز‪ٞ‬ی ٔیك‪ٛ‬ز‪ .‬ث‪ٕٛ٘ ٝ‬زاضی و‪ٔ ٝ‬قطف ثبظزی ‪ Yii Framework‬زض ٔمبیؿ‪ ٝ‬ثب چ‪ٙ‬س فطیٓ ‪ٚ‬ضن ٔقط‪ٚ‬ف اؾز‬ ‫س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫‪01‬‬

‫ٔكب‪ٞ‬س‪ٔ ٜ‬ی ق‪ٛ‬ز ٔیعاٖ ثبظز‪ٞ‬ی آظٔبیف قس‪ ٜ‬ثطای ‪ Yii‬ثؿیبض ثیكشط اظ ضلجبی لسیٕی ذ‪ٛ‬ز اؾز‪.‬‬ ‫چ‪ٙ‬س ٔ‪ٛ‬ضز اظ ‪ٚ‬یػٌی ‪ٞ‬بی زیٍط ‪:‬‬ ‫ دكشیجب٘ی اظ ‪AJAX‬‬‫ دكشیجب٘ی اظ ثب٘ه اعالفبسی چ‪ٙ‬س ٌب٘‪MultipleDB ٝ‬‬‫ دكشیجب٘ی اظ ‪Templates‬‬‫ دكشیجب٘ی اظ ‪Modules‬‬‫ دكشیجب٘ی اظ‪Authentication‬‬‫ دكشیجب٘ی اظ ‪Validation‬‬‫پیص ویاسَای قبل اس ضزيع کار‬ ‫ثطای قط‪ٚ‬ؿ وبض ثب ‪ Yii‬وبضثط ثبیس ثب ان‪ َٛ‬ا‪ِٚ‬ی‪ ٝ‬ثط٘بٔ‪ٛ٘ ٝ‬یؿی آق‪ٙ‬بیی زاقش‪ ٝ‬ثبقس‪ٕٞ .‬چ‪ٙ‬یٗ ان‪ َٛ‬ا‪ِٚ‬ی‪ٝ‬‬ ‫عطاحی ‪ٚ‬ة ‪ ٚ‬آق‪ٙ‬بیی ثب زؾش‪ٛ‬ضار ‪ PHP‬ضط‪ٚ‬ضی اؾز‪ .‬وبضثط ثبیس ثب ٔفب‪ٞ‬یٓ قی ٌطایی ‪ٕٞ ٚ‬چ‪ٙ‬یٗ ثب٘ه‬ ‫‪ٞ‬بی اعالفبسی آق‪ٙ‬ب ثبقس‪ .‬سقسازی اظ دیف ٘یبظ ‪ٞ‬ب زض ظیط آٔس‪ ٜ‬اؾز‪:‬‬ ‫ ‪XHTML‬‬‫ ‪CSS‬‬‫ ‪JavaScript & JQuery‬‬‫ ‪PHP‬‬‫ ‪Object Oriented Programming‬‬‫‪SQL Language & PhpMyAdmin -‬‬

‫چٍ بزوامٍ َایی را با ‪ Yii‬می تًان تًلیذ کزد‬ ‫فطیٓ ‪ٚ‬ضن ‪ٙٔ Yii‬بؾت ثطای عطاحی ؾبیز ‪ٞ‬ب ‪ ٚ‬ثط٘بٔ‪ٞ ٝ‬بی سحز ‪ٚ‬ة ثب سطافیه ثبال اؾز‪ .‬ؾبیز ‪ٞ‬بی‬ ‫ٔطسجظ ثب سؼبضر اِىشط‪٘ٚ‬یه‪ ،‬د‪ٛ‬ضسبَ ‪ٞ‬ب‪ ،‬فط‪ٞ ْٚ‬ب ‪ ٚ‬ؾیؿشٓ ‪ٞ‬بی ٔسیطیز ٔحش‪ٛ‬ا اظ ػّٕ‪ ٝ‬ثط٘بٔ‪ٞ ٝ‬بیی ‪ٞ‬ؿش‪ٙ‬س‬ ‫‪00‬‬

‫و‪ٔ ٝ‬ی س‪ٛ‬اٖ س‪ٛ‬ؾظ ‪ Yii‬آ٘‪ٟ‬ب ضا دیبز‪ ٜ‬ؾبظی ٕ٘‪ٛ‬ز‪.‬أ‪ٙ‬یز‪ ،‬ؾطفز ‪ ٚ‬وبضایی اظ ػّٕ‪ٕٟٔ ٝ‬شطیٗ ٔكره‪ٞ ٝ‬بی‬ ‫ثط٘بٔ‪ٞ ٝ‬بی س‪ِٛ‬یس قس‪ ٜ‬س‪ٛ‬ؾظ ‪ٞ Yii‬ؿش‪ٙ‬س‪ Yii.‬یه فطْ ‪ٚ‬ضن ٔ‪ٙ‬بؾت ثطای دیبز‪ ٜ‬ؾبظی ؾبیز ‪ٞ‬بی حطف‪ ٝ‬ای‬ ‫‪ ٚ‬دیكطفش‪ ٝ‬ثب ٔیعاٖ وبضایی ثبال اؾز ‪ ٚ‬لبثّیز ‪ٞ‬بی ٌؿشطـ ظیبزی ضا زض اذشیبض وبضثطاٖ ذ‪ٛ‬ز لطاض ٔی ز‪ٞ‬س‪.‬‬

‫وصب ‪Yii Framework‬‬ ‫٘هت فطیٓ ‪ٚ‬ضن قبُٔ ٔطاحُ ظیط اؾز ‪:‬‬ ‫اٌط لهس ٘هت فطیٓ ‪ٚ‬ضن ثط ض‪ٚ‬ی ‪ localhost‬ضا زاضیٓ ثبیس ‪ٙٔ host server‬بؾت ضا ٘هت ٕ٘بییٓ‪ .‬دیك‪ٟٙ‬بز‬ ‫ٔی ق‪ٛ‬ز و‪ ٝ‬اظ ٘طْ افعاض ‪XAMP Server‬اؾشفبز‪ٕ٘ ٜ‬بییس ‪ٞ‬ط چ‪ٙ‬س ٔی س‪ٛ‬اٖ اظ ثط٘بٔ‪ٞ ٝ‬بی زیٍط ‪ٕٞ‬ب٘‪ٙ‬س‬ ‫‪٘ Wamp Server‬یع اؾشفبز‪ ٜ‬وطز‪٘ .‬ىش‪ ٟٓٔ ٝ‬ایٗ اؾز و‪ٞ ٝ‬بؾز ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬اظ ‪٘ PHP‬ؿر‪5.1 ٝ‬یب ثبالسط‬ ‫دكشیجب٘ی ٕ٘بیس‪.‬آذطیٗ ٘ؿر‪ ٝ‬فطیٓ ‪ٚ‬ضن ضا اظ لؿٕز ‪ downloads‬ؾبیز ‪www.yiiframework.com‬‬ ‫زضیبفز ٕ٘بییس‪ .‬ایٗ فبیُ زض لبِت ‪ tar‬یب ‪ٔ zip‬ی ثبقس‪ .‬ایٗ فبیُ ضا اظ حبِز فكط‪ ٜ‬ذبضع ٔی و‪ٙ‬یٓ‪ ٚ .‬زض یه‬ ‫د‪ٛ‬ق‪ ٝ‬ثب ف‪ٛٙ‬اٖ ‪ yii‬لطاض ٔیس‪ٞ‬یٓ‪.‬د‪ٛ‬ق‪ yii ٝ‬ایؼبز قس‪ ٜ‬ضا زض ٔؿیط ‪ localhost‬لطاض ٔی ز‪ٞ‬یٓ‪ .‬اٌط اظ‬ ‫‪ XAMP Server‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ایٗ ٔؿیط چیعی ٔب٘‪ٙ‬س ‪ C:\xampp\htdocs‬اؾز ‪ ٚ‬اٌط اظ‬ ‫‪ Wamp Server‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪ٔ C:\wamp\www‬ی ثبقس‪.‬‬ ‫زض ؾبیط ‪ٞ‬بؾز ‪ٞ‬ب ثبیس د‪ٛ‬ق‪ٛٔ ٝ‬ضز ٘ؾط ضا دیسا و‪ٙ‬یٓ‪٘.‬ىش‪ : ٝ‬لطاض زازٖ د‪ٛ‬ق‪ ٝ‬فطیٓ ‪ٚ‬ضن زض ایٗ ٔؿیط اِعأی‬ ‫ٕ٘ی ثبقس ‪ ٚ‬ثقسا ٔی س‪ٛ‬اٖ ایٗ ٔؿیط ضا ث‪ٞ ٝ‬ط ػبی زیٍط سغییط زاز‪.‬زض ایٗ ٔطحّ‪ Localhost Server ٝ‬ضا‬ ‫‪ٔ Start‬ی و‪ٙ‬یٓ ‪ ٚ‬ؾط‪ٚ‬یؽ ‪ٞ‬بی ‪ MySQL ٚ Apache‬ضا ضا‪ ٜ‬ا٘ساظی ٔی و‪ٙ‬یٓ ‪ ٚ‬ؾذؽ زض ٔط‪ٚ‬ضٌط ذ‪ٛ‬ز‬ ‫آزضؼ ظیط ضا ثبظ ٔی و‪ٙ‬یٓ ‪:‬‬ ‫‪http://localhost/yii/requirements/index.php‬‬ ‫زض ایٗ نفح‪٘ ٝ‬یبظٔ‪ٙ‬سی ‪ٞ‬بی ٔ‪ٛ‬ضز ٘یبظ ٘كبٖ زاز‪ ٜ‬قس‪ ٜ‬اؾز‪ٌ .‬عی‪ٞ ٝٙ‬بی ‪ Failed‬قس‪ ٜ‬ثبیس ثطضؾی ‪ٚ‬‬ ‫ؾط‪ٚ‬یؽ ‪ٞ‬بی ٔطسجظ ثب آ٘‪ٟ‬ب فقبَ ٌطز٘س سب اظ حبِز ‪ Failed‬ذبضع ق‪٘ٛ‬س‪ .‬ز‪ ٚ‬ؾط‪ٚ‬یؽ ‪ٚ PDO extension‬‬ ‫‪ PDO SQLite extension‬ثطای قط‪ٚ‬ؿ ث‪ ٝ‬وبض ثب ‪ Yii‬ضط‪ٚ‬ضی ‪ٞ‬ؿش‪ٙ‬س ‪ ٚ‬ثبیس فقبَ ثبق‪ٙ‬س‪.‬‬

‫‪02‬‬

‫زض ایٗ ٔطحّ‪ ٝ‬ثبیس ٔؿیط ‪ٞ‬بی ؾیؿشٓ ضا انالح ٕ٘بییٓ ثطای ایٗ وبض زض ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ زض نفح‪MyComputer ٝ‬‬ ‫وّیه ضاؾز وطز‪ٌ ٚ ٜ‬عی‪ Properties ٝٙ‬ضا ا٘شربة ٔی و‪ٙ‬یٓ ‪ ٚ‬ؾذؽ زض لؿٕز ‪Advanced Settings‬‬ ‫زض لؿٕز ‪ٚ Advanced‬اضز ٔی ق‪ٛ‬یٓ ‪ٌ ٚ‬عی‪ Environment Variables ٝٙ‬ضا ا٘شربة ٔی و‪ٙ‬یٓ ‪ ٚ‬زض‬ ‫لؿٕی ‪ٌ System Variables‬عی‪ Path ٝٙ‬ضا ا٘شربة وطز‪ٔ ٚ ٜ‬ؿیط لطاض ٌیطی فطیٓ ‪ٚ‬ضن ‪ٕٞ ٚ‬چ‪ٙ‬یٗ ٔؿیط‬ ‫لطاض دیطی فبیُ ‪ php.exe‬و‪ ٝ‬زض ‪ Localhost Server‬لطاض زاضز ضا اضبف‪ٔ ٝ‬ی و‪ٙ‬یٓ ٔب٘‪ٙ‬س ظیط ‪:‬‬ ‫‪C:\xampp\htdocs\yii\framework;C:\xampp\php‬‬ ‫حبَ ؾیؿشٓ ضا یه ثبض ضا‪ ٜ‬ا٘ساظی ٔؼسز ٔیى‪ٙ‬یٓ‪.‬‬ ‫ساخت ايلیه پزيصٌ‬ ‫دؽ اظ ٘هت فطیٓ ‪ٚ‬ضن ثطای ؾبذز ا‪ِٚ‬یٗ دط‪ٚ‬غ‪ ٜ‬ث‪ ٝ‬قىُ ظیط فٕی ٔی و‪ٙ‬یٓ ‪ .‬اثشسا زض ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ زض لؿٕز‬ ‫‪ run‬فجبضر ‪ cmd‬ضا سبیخ ٔی و‪ٙ‬یٓ ‪ٚ ٚ‬اضز ‪ٔ Command Prompt‬یك‪ٛ‬یٓ‪.‬ؾذؽ ثب زؾش‪ٛ‬ض ‪ٚ cd‬اضز ٔؿیط‬ ‫‪ٔ web root‬ی ق‪ٛ‬یٓ ٔظال اٌط اظ ‪ XAMP Server‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪:‬‬ ‫‪Cd C:\xampp\htdocs‬‬ ‫ؾذؽ اظ اثعاض ‪ yiic‬ثطای ؾبذز دط‪ٚ‬غ‪ٛٔ ٜ‬ضز ٘ؾط اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪:‬‬ ‫‪yiic webapp demo‬‬ ‫ؾذؽ یه ؾ‪ٛ‬اَ دطؾیس‪ٔ ٜ‬ی ق‪ٛ‬ز و‪ y ٝ‬یب ‪ yes‬ضا ‪ٚ‬اضز ٔی و‪ٙ‬یٓ‬ ‫‪Create a Web application demo? [Yes|No] yes‬‬ ‫‪09‬‬

‫‪......‬‬ ‫ایٗ وبض ثبفض ؾبذز یه د‪ٛ‬ق‪ ٝ‬ثب ٘بْ‪ demo‬زض ٔؿیط ػبضی ‪ٔ webroot‬ی ق‪ٛ‬ز‪ .‬ثطای ٔكب‪ٞ‬س‪ ٜ‬دط‪ٚ‬غ‪ٜ‬‬ ‫ؾبذش‪ ٝ‬قس‪ٔ ٜ‬ؿیط ظیط ضا زض ٔطضٌط ذ‪ٛ‬ز ‪ٚ‬اضز ٔی وی‪: ٓٙ‬‬ ‫‪http://localhost/demo/index.php‬‬

‫دط‪ٚ‬غ‪ ٜ‬ؾبذش‪ ٝ‬قس‪ ٜ‬زاضای ‪ 4‬نفح‪ homepage, about page, contact page login page ٝ‬اؾز‪ .‬ث‪ٝ‬‬ ‫ایٗ دط‪ٚ‬غ‪ ٜ‬ؾبذش‪ ٝ‬قس‪ٔ skeleton ٜ‬ی ٌ‪ٛ‬ی‪ٙ‬س و‪ ٝ‬قبُٔ ایٗ ‪ 4‬نفح‪ ٝ‬دیف فطو ‪ ٚ‬اثشسایی اؾز ‪ ٚ‬ثقسا‬ ‫نفحبر ‪ٔ ٚ‬حش‪ٛ‬یبر آٖ س‪ٛ‬ؾظ ٔب ‪ٚ‬یطایف ٔی ق‪ٛ‬ز‪.‬‬ ‫٘ىش‪ٔ :ٝ‬ؿیط د‪ٛ‬ق‪ yii framework ٝ‬ثبیس حشٕب زض ‪ path‬لطاض زاز‪ ٜ‬قس‪ ٜ‬ثبقس زض غیط ایٗ ن‪ٛ‬ضر ثط٘بٔ‪ٝ‬‬ ‫‪ yiic‬اػطا ٘ر‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬ثطای اػطای ‪ yiic‬ثبیس ٔؿیط فبیُ ‪٘ php.exe‬یع زض ‪ٛٔ path‬ػ‪ٛ‬ز ثبقس‪.‬‬ ‫ابشار خط فزمان‪yiic‬‬ ‫دؽ اظ ٘هت ‪ Yii Framework‬ثطای ایؼبز یه دط‪ٚ‬غ‪ ٜ‬ػسیس ث‪ ٝ‬قىُ ظیط فُٕ ٔی و‪ٙ‬یٓ ‪.‬ث‪ ٝ‬ؾغط فطٔبٖ‬ ‫ضفش‪ ٚ ٝ‬زؾش‪ٛ‬ض ظیط ضا ‪ٚ‬اضز ٔی و‪ٙ‬یٓ ‪:‬‬ ‫‪Yiic webapp [path/] project-name‬‬ ‫ٔظبَ‪:‬‬ ‫‪Yiic webapp c:\xampp\htdocs\project1‬‬ ‫ؾبذشبض وبُٔ زؾش‪ٛ‬ض ‪ yiic‬ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬ ‫‪04‬‬

‫]‪yiic [parameters...‬‬ ‫‪The following commands are available:‬‬ ‫‪- message‬‬ ‫‪- migrate‬‬ ‫‪- shell‬‬ ‫‪- webapp‬‬ ‫ؾ‪ٛ‬ییچ ‪Message‬‬ ‫>‪yiic message ‪yiic webapp defaultController‬‬ ‫‪21‬‬

‫;‪echo Yii::app()->theme‬‬ ‫تغییر بَ همادیر ‪//‬‬ ‫;”‪Yii::app()->name = “My Project Name‬‬

‫‪ٞ‬ط ‪Application‬س‪ٛ‬ؾظ والؼ ‪CWebApplication‬‬

‫ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز و‪ ٝ‬زض ٔؿیط‬

‫‪ yii\framework\web\CWebApplication.php‬لطاض زاضز‪ٔ.‬ؿیط لطاضٌیطی ‪ yii.php‬ث‪ ٝ‬قىُ ظیط‬ ‫سقییٗ ٔی ق‪ٛ‬ز‪:‬‬ ‫;'‪$yii=dirname(__FILE__).'/../yii/framework/yii.php‬‬

‫دؽ ‪ ٕٝ٘ٛ٘ application‬ای ؾبذش‪ ٝ‬قس‪ ٜ‬اظ ض‪ٚ‬ی والؼ ‪ yii‬اؾز و‪ ٝ‬س‪ٙ‬ؾیٕبر ‪ config‬زض آٖ افٕبَ قس‪ٜ‬‬ ‫اؾز‪.‬د‪ٛ‬ق‪ٔ Protected ٝ‬حُ لطاض ٌیطی فبیّ‪ٟ‬ب ‪ ٚ‬د‪ٛ‬ق‪ٞ ٝ‬بی انّی ثط٘بٔ‪ ٝ‬اؾز و‪ ٝ‬ث‪ ٝ‬آٖ د‪ٛ‬ق‪ٝ‬‬ ‫‪٘ Application‬یع ٔی ٌ‪ٛ‬ی‪ٙ‬س ‪ ٚ‬ثبیس اظ زؾشطؼ زیٍطاٖ ٔحبفؾز ق‪ٛ‬ز ِصا یه فبیُ ٔرفی ثب ٘بْ‬ ‫‪ .htaccess‬ایؼبز وطز‪ٔ ٚ ٜ‬حش‪ٛ‬ای آٖ ضا ثطاثط ‪ deny from all‬لطاض ٔی ز‪ٞ‬یٓ‪.‬آزضؼ زؾشطؾی ث‪ ٝ‬آٖ ‪:‬‬ ‫‪dirname(__FILE__).'/protected‬‬

‫‪: Entry Script‬‬ ‫‪ Entry Script‬ث‪ ٝ‬فبیُ ‪ٛٔ index.php‬ػ‪ٛ‬ز زض قبذ‪ ٝ‬انّی ٌفش‪ٔ ٝ‬ی ق‪ٛ‬ز و‪ ٝ‬قی انّی ثط٘بٔ‪ ٝ‬یق‪ٙ‬ی‬ ‫‪ Application‬ضا ایؼبز ٔی و‪ٙ‬س‪ .‬ث‪ ٝ‬فبیُ ‪ index.php‬انّی ‪ Entry Script‬یب اؾىطیذز ‪ٚ‬ض‪ٚ‬زی ٌفش‪ٔ ٝ‬ی‬ ‫‪20‬‬

‫ قىُ ظیط‬ٝ‫ض دیف فطو ث‬ٛ‫ ع‬ٝ‫ای ایٗ فبیُ ث‬ٛ‫ ٔحش‬.‫ز‬ٛ‫ ٔی ق‬ٜ‫ؾیٕبر زیٍطی ٘یع لطاض زاز‬ٙ‫زض ایٗ فبیُ س‬.‫ز‬ٛ‫ق‬ .‫اؾز‬ // change the following paths if necessary $yii=dirname(__FILE__).'/../yii/framework/yii.php'; $config=dirname(__FILE__).'/protected/config/main.php'; // remove the following lines when in production mode defined('YII_DEBUG') or define('YII_DEBUG',true); // specify how many levels of call stack should be shown in each log message defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); require_once($yii); Yii::createWebApplication($config)->run();

.‫ز‬ٛ‫ ٔی ق‬ٝ‫ ٌفش‬Bootstrap ٖ‫ آ‬ٝ‫ ث‬ٝ‫س و‬ٙ‫ ضا ٔكرم ٔی و‬yii.php ‫ ٔؿیط لطاض ٌیطی‬: $yii .‫س‬ٙ‫ ضا ٔكرم ٔی و‬config file ٖ‫ٕب‬ٞ ‫ یب‬Application ُ‫ ٔؿیط لطاض ٌیطی فبی‬: $config ٗ‫ اظ ای‬debug mode ‫ زض حبِز‬defined('YII_DEBUG') or define('YII_DEBUG',true); ٝ‫ییٓ زیٍط ٘یبظی ث‬ٌٛ ‫ ٔی‬Production mode ٖ‫ آ‬ٝ‫ ث‬ٝ‫ ؾبیز و‬publish ْ‫ٍب‬ٙٞ ٚ ‫ز‬ٛ‫ ٔی ق‬ٜ‫وس اؾشفبز‬ .‫ایٗ وس ٘یؿز‬ ‫ اٌط حبِز‬defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); .‫ز‬ٛ‫ ق‬ٜ‫س ؾغح ذغب ثبیس زض یه دیبْ ٘كبٖ زاز‬ٙ‫ط چ‬ٞ ٝ‫س و‬ٙ‫ فقبَ ثبقس ٔكرم ٔی و‬logging .‫س‬ٙ‫ا٘ی ٔی و‬ٛ‫ ضا فطاذ‬yii.php ُ‫ فبی‬require_once($yii); ‫ اظ والؼ‬ٕٝ٘ٛ٘ ‫ض یه‬ٛ‫ؾظ ایٗ زؾش‬ٛ‫س‬

Yii::createWebApplication($config)->run();

.‫ز‬ٛ‫ ؾذؽ اػطا ٔی ق‬ٚ ‫٘س‬ٛ‫ زض آٖ افٕبَ ٔی ق‬config ُ‫ز زض فبی‬ٛ‫ػ‬ٛٔ ‫بی‬ٞ‫سط‬l‫ دبضا‬ٚ ‫ز‬ٛ‫ ٔی ق‬ٝ‫ؾبذش‬Yii

: Bootstrap ‫بی وبضثط‬ٟ‫اؾش‬ٛ‫ زضذ‬ٝ‫ وّی‬ٝ‫ اؾز و‬Framework ‫ز زض‬ٛ‫ػ‬ٛٔ yiic.php ُ‫ٕبٖ فبی‬ٞ bootstrap ‫اؾىطیذز‬ ‫ وبضثط‬ٝ‫ب اؾىطیذشی اؾز و‬ٟٙ‫ س‬Bootstrap.‫س‬ٙ‫ اضؾبَ ٔی و‬ٝ‫ع‬ٛ‫شطِط ٔطث‬ٙ‫ ثطای و‬ٚ ‫س‬ٙ‫ضا زض زضیبفز ٔی و‬ ٝ‫ ثمی‬ٚ ‫ز‬ٛ‫ اػطا ٔی ق‬bootstrat ‫اؾز وبضثط‬ٛ‫ط زضذ‬ٞ ‫ ثب‬.‫ ثبقس‬ٝ‫ آٖ زؾشطؾی ٔؿشمیٓ زاقش‬ٝ‫ا٘س ث‬ٛ‫ؾبیز ٔی س‬ .‫س‬ٙ‫ب ضا ز٘جبَ ٔی و‬ٞ‫وبض‬

22

‫‪: Config‬‬ ‫فبیُ ‪ Config‬فبیّی اؾز و‪ ٝ‬س‪ٙ‬ؾیٕبر وّی دط‪ٚ‬غ‪ ٜ‬زض آٖ لطاض زاضز‪ٔ.‬ؿیط فبیُ ‪ config‬ضا زض فبیُ‬ ‫‪ bootstrap‬ث‪ ٝ‬قىُ ظیط سقییٗ ٔی و‪ٙ‬یٓ ‪:‬‬ ‫;'‪$config=dirname(__FILE__).'/protected/config/main.php‬‬

‫‪ٞ‬ط ‪ application‬ؾبذش‪ ٝ‬قس‪ ٜ‬س‪ٛ‬ؾظ ‪ bootstrap‬زض ‪ٚ‬الـ ٕ٘‪ ٝ٘ٛ‬ای اظ فبیُ ‪ٛٔ yiiBase.php‬ػ‪ٛ‬ز زض‬ ‫‪ framework‬اؾز و‪ ٝ‬س‪ٙ‬ؾیٕبر ‪ config‬زض آٖ افٕبَ قس‪ ٜ‬اؾز‪:‬‬ ‫;)(‪Yii::createWebApplication($config)->run‬‬

‫‪ Config‬زض ‪ٚ‬الـ آضای‪ ٝ‬ای اؾز و‪ٔ ٝ‬مبزیط ‪ ٚ‬س‪ٙ‬ؾیٕبر دط‪ٚ‬غ‪ ٜ‬زض آٖ لبثُ سقطیف اؾز‪.‬اٌط فبیُ ‪config‬‬ ‫ذیّی دیچیس‪ ٚ ٜ‬ع‪ٛ‬ال٘ی ثبقس ٔی س‪ٛ‬اٖ آٖ ضا زض چ‪ٙ‬س فبیُ ػسا سمؿیٓ وطز ‪ٟ٘ ٚ‬بیشب ‪ ٕٝٞ‬ضا ث‪ ٝ‬یه ٘مغ‪ٝ‬‬ ‫ٔكشطن دی‪٘ٛ‬س زاز‪ٔ config .‬ی س‪ٛ‬ا٘س زض فبیُ ‪ protected/config/main.php‬شذیط‪ ٜ‬قس‪ ٜ‬ثبقس ‪ ٚ‬یب زض‬ ‫یه فبیُ زیٍط و‪ ٝ‬ثطای أ‪ٙ‬یز ثیكشط زض ‪ٍٙٞ‬بْ ‪ٔ Production‬ی س‪ٛ‬اٖ آٖ ضا زض فبیُ زیٍطی لطاض زاز ‪ٚ‬‬ ‫ٔؿیط ‪ Config‬ضا زض ‪ index.php‬انّی ثط٘بٔ‪ ٝ‬انالح ٕ٘‪ٛ‬ز‪.‬‬ ‫ٔؿیط دیف فطو ‪config‬‬ ‫;'‪protected/config/main.php‬‬

‫ٔظبِی اظ ٘ح‪ ٜٛ‬ا٘ؼبْ س‪ٙ‬ؾیٕبر زض ‪config‬‬

‫(‪array‬‬ ‫‪'name'=>'Yii Framework',‬‬ ‫‪'defaultController'=>'site',‬‬ ‫)‬

‫ٔحش‪ٛ‬ای وّی ‪ config‬س‪ٟٙ‬ب یه آضای‪ ٝ‬اؾز ث‪ ٝ‬قىُ ‪:‬‬ ‫‪