# زبان های اسکریپتی > PHP > CodeIgniter >  آموزش Codeigniter بخش دوم

## ghasem.fattahpour

*MODEL – VIEW – CONTROL* * در واقع چه هستند؟*
 برای اینکه ما بتوانیم کنترل مناسبی بر روی فرآیند های خود داشته باشیم می توانیم هر کدام از عناصر 3 گانه این معماری را به عنوان یک پوشه در نظر بگیریم که در خود فایل های مختلفی را در بر دارند که هر کدام از این فایل ها خود دارای یک کلاس جداگانه هستند. پس controller خود یک مجموعه از کلاس های مختلف است. 


*بررسی* *url* * در معماری* *MVC*
 زمانی که شما در داخل اینترنت به جستجو می پردازید حتما به این مسئله برخورده اید که به صفحاتی روبه رو می شوید که هیچ گونه پسوندی ندارند مثلا:
 _http://codeigniter.com/news/

_ در واقع در این آدرس متوجه می شویم در چه سایتی و در چه صفحه ای قرار داریم. مسئله جالب دیگر! ما می دانیم که تمامی صفحات در بخش news سایت codeigniter  به صورت داینامیک هستند پس آیا ممکن است که یک صفحه داینامیک به هیچ ختم شود؟!
 در واقع در معماری MVC سعی بر این شده است که :
 1) صفحات برای موتور های جستجو گر بهینه شوند 
 2) فراخوانی توابع و بررسی خطا ها راحتتر شود
 3) و...

 زمانی که ما در معماری MVC ودر فریم وورک  codeigniterیک صفحه را فراخوانی می کنیم دقیقا متدی از  یک کلاس که در پوشه controller وجود دارد را فراخوانی می کنیم. با مثالی بحث را روشنتر می کنیم:
 در سایت های خبری گاهی با این آدرس برخورد می کنیم:

 example.com/news/article/_my_article_

 اگر بررسی بر روی این آدرس داشته باشیم در واقع کلاسی به نام News در داخل پوشه controller وجود دارد که دارای متدی به نام article است و این متد دارای پارامتری به نام my_article  می باشد. یعنی:

example.com/class/function/_ID_
اگر این کلاس نوشته شود حتما این موارد را با خود یدک می کشد:

----------code  
<?php
  class news
  {
            …
            …
   
  function article($ID ,…)
  {
  ……
  }
            …
            …
  }
  ?>
  --------------------end of code
 


در ضمن codeigniter این توانایی را به شما می دهدکه به انتهای تمامی  url های خود یک پسوندبه دلخواه قرار دهید مانند: .html

----------


## Javad583

این قابليتی که شما میفرماييد هيچ ربطی به MVC نداره بلکه راحت تر میشه اونو پياده سازی کرد. شما نهايتا برای اجرای اين نوع درخواست ها نياز به HTACCESS داريد. با کد نويسی عادی هم میشه اینکار رو انجام داد.

----------

