کنترلرها (Controllers) در کد ایگنایتر codeigniter
جهت ورود به دوره آموزش تصویری کد ایگنایتر کلیک کنید .
در ویدیو آموزش زیر controller ها در کد ایگنایتر به صورت کامل به شما آموزش داده می شود.
کنترلرها (Controllers) رابط کاربر با برنامه می باشند و آدرسها را مدیریت میکنند همچنین رابط بین model و view می باشند .
example.com/index.php/blog/
در مثال بالا فایل Blog.php که در پوشه controller قرار دارد را بارگزاری می کند و هچنین تابع index که به صورت پیش فرض می باشد.
<?phpclass Blog extends CI_Controller { public function index() { echo 'Hello World!'; } }
در صورتی که شما فایل Blog.php را همانند مثال بالا بسازید و آدرس زبر را بارگزاری نمایید مقدار hello world چاپ می شود.
example.com/index.php/blog/
توجه: نام کنترلرها حتما باید با اسم بزرگ شروع شود ‘B’
<?phpclass Blog extends CI_Controller { }
متد ها در کنترلرها (Controllers) در کد ایگنایتر
همان گونه که در مثال بالا مشاهده نمودید ما کدهایمان را درون تابع index() نوشته شده درواقع تابع پیش فرض ما برای با رگزاری index می باشد ولی شما قابلیت دارید هر تابعی را درون فایل CONTROLLER بارگزاری نمایید .به مثال زیر توجه نمایید.
<?php class Blog extends CI_Controller { public function index() { echo 'Hello World!'; } public function comments() { echo 'Look at this!'; } }
درا ین مثال ما دو تابع داریم به نام های index و comments برای صدا زدن تابع comments به صورت آدرس زیر تابع comments را بارگزاری می شود.
example.com/index.php/blog/comments/
با بارگزاری آدرس فوق شما باید متن جدید را مشاهده کنید .”look at this”
ارسال مقدار به توابع و متدها در کنترلرها (Controllers) در کد ایگنایتر
شما امکان ارسال مقدار به متدها را دارید به طور مثال وقتی بخواهید شناسه ای را به توابعی بفرستید و طبق اطلاعات آن شناسه مطلبی را نشان دهد .
example.com/index.php/products/shoes/sandals/123
همان گونه که می بینید می خواهیم به تابعی به نام shoes که کفشها را نشان میدهد ، مقدار sandal و ۱۲۳ را ارسال کنیم.
<?php class Products extends CI_Controller { public function shoes($sandals, $id) { echo $sandals; echo $id; } }
همانگونه که مشاهده میکنید تابع shoes درمتغیر sandal و id را دریافت و چاپ میکند بعد از اجرای برنامه sandal و ۱۲۳ چاپ می شود و درون تابع مقدارهای $sandals و $id مقدار می گیرند.
تعریف کنترلر پیش فرض در کنترلرها (Controllers) در کد ایگنایتر
کنترلر پیش فرض : کنترلی است که در صورتی که ما برنامه را بدون آدرسی صدا بزنیم آن کنترل بارگزاری می شود . که مقدار آن را در فایل application/config/routes.php می توانید تغییر دهید.
$route[‘default_controller’] = ‘blog’;
توجه: در مقدار دهی بالا فقط کافی است کنترلر را بنوسید بدون هیچ آدرس دیگری در صورتی که مقدار تابع را مشخص نکنید تابع index() در آن کنترلر بارگزاری میشود.
طبقه بندی کنترلرها با استفاده از پوشه بندی
شما به راحتی می توانید فایلهای کنترلرها را طبقه بندی کنید و آنها را با فولدرها جدا سازی کنید به طور مثال:
application/controllers/products/Shoes.php
وبه صورت زیر میتوانید از کنترلر مورد نظر استفاده کنید.
example.com/index.php/products/shoes/show/123
سازنده های کلاس
هنگامی که شما می خواهید کلاسی سفارشی بسازید و تمامی اجزای کلاس ریشه آنرا بارگزاری نمایید از سازنده ها استفاده می کنیم.
parent::__construct();
در کد ایگنایتر شما کنترلری می سازید و از ریشه ان سازنده می سازید همانند کد زیر بعد از آن شما تمامی کنترلرها را می توانید از آن کنترلر ریشه بگیرید و به این صورت شما می توانید اجزای سفارشی خود را در کلاس ریشه ساخته و هر موقع نیاز داشتید بارگزاری نمایید.
<?php class Blog extends CI_Controller { public function __construct() { parent::__construct(); // Your own constructor code } }
توجه:جهت دریافت لیست نامهای رزرو شده به آدرس زیر مراجعه نمایید
.http://www.codeigniter.com/user_guide/general/reserved_names.html