PDA

View Full Version : سوال: ساختار load کلاس در CodeIgniter ؟



redhat2
چهارشنبه 29 خرداد 1392, 20:16 عصر
سلام یه سوال داشتم ، میخاوستم بدونم که چطوری یه همچین ساختاری تویه CodeIgniter پیاده شده ،


$this->session


یعنی میتونه که با نوشتن نام کلاس بعد از



$this


به متد های اون کلاس دسترسی پیدا کنه ؟؟؟؟
ممنون میشم جواب بدین .

arta.nasiri
چهارشنبه 29 خرداد 1392, 21:19 عصر
سلام

بهتره Document رو بخونید، کلا ساختار رو توضیح داده!!!

متد load تو کلاس Loader پیاده سازی شده است که کارش اینه که اسم کلاسی رو که بهش میدیم ( در واقع اسم فایلی که کلاس رو توش نوشتیم ) رو include میکنه.

کلاس Loader هم جزو کلاسی هایی است که به صورت پیشفرض بارگذاری میشه. ( کلاس CI_Controller رو بررسی کنید ).

بقیه مراحل مثل

$this->session
مربوط به شی گرائی میشه که وقتی کلاسی رو include کردیم میتونیم به اعضای اون کلاس دسترسی داشته باشیم.

مهرداد سیف زاده
چهارشنبه 29 خرداد 1392, 21:24 عصر
در حالت عادی که نمیتونه به تمام متدهای قسمتهای دیگر دسترسی داشته باشه که به کمک روش‌های زیر این امکان فراهم میشه:
۱- autoload: در پوشه app درون پوشه config فایلی با نام autoload وجود داره که میتونید هر کتابخانه و متدی رو که حس میکنید در تمام صفحات به اون نیاز خواهید داشت را برای شما load کنه. مثلا همین session که شما گفتید برای منوی مدیریت در تمام صفحات نیازه.
2- load دستی: با این روش بعد از شروع کلاس در کنترلر شما یه construct میزنید و تمام کتابخانه‌ها و متدهایی که نیاز دارید رو لود می‌کنید.
3- بعضی قسمتها نیاز به لود نداره: مثلا قراره در این کنترلر یک فرم از طریق متد post دریافت بشه نیازی نیست کتابخانه‌ و یا متدی بنام post رو لود کنید بلکه این نوع از متدها بصورت عمومی درش وجود داره.

بعد هم در فریم ورک‌های codeigniter و cakephp که درشون مطالعه کردم بسیار شبیه به هم بودن از نظر لود متدها.