• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کلاس controller
#1
شرح وظیفه: بر اساس درخواست کاربر، مدل مربوطه رو شامل پروژه و یک شی از اون رو میسازه.
علاوه بر این تابع مورد نظرمون(که در url درخواست شده) رو هم صدا میزنه.

تابع model:
مدل رو شامل و یک شی از اون رو ایجاد میکنه.

تابع authorize:
مسئول احراز هویت کاربرانه.

تابع loadFunction:
یک تابع از کلاس کنترلری که توسط appController یا router شامل و ایجاد شده رو صدا میزنه.

تابع سازنده:
پس از لاگین، کاربر به صفحه ی admin.php فرستاده میشه(توابع مدیریتی فقط در این صفحه صدا زده میشن. محتویات داخل admin.php کاملا شبیه به index.php میباشد)

تابع سازنده بعد از بررسی محل کاربر، سه تابع بالا رو فراخوانی میکنه.

پ.ن: فکر کنم کنار هر بخش یه توضیح اینجوری هم باشه بهتره

خب، نظرتون در مورد این بخش چیه؟
اگر دوستان اجازه بدن controller رو هم خودم ویرایش کنم.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#2
در مورد این بخش کسی نظری نداره؟!
همین جوری خوبه؟
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#3
در نظر داشته باشید که یک کنترلر میتونه

1- اصلا مدل نداشته باشه
2- یک مدل وابسته و هم نام کنترلر داشته باشه
3- چندتا مدل داشته باشه.
  پاسخ
تشکر شده توسط : Reza undefined
#4
با داش صالح موافقم ، اما آیا امکان دسترسی مستقیم به دیتابیس رو توی کنترلر میذاری ؟
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#5
رضا جان منظور از دست رسی مستقیم دقیقا چی هست؟
  پاسخ
تشکر شده توسط :
#6
نقل قول:شرح وظیفه: بر اساس درخواست کاربر، مدل مربوطه رو شامل پروژه و یک شی از اون رو میسازه.
علاوه بر این تابع مورد نظرمون(که در url درخواست شده) رو هم صدا میزنه.
این شرح وظیفه ناقصه. شرح وظیفه کنترلر توی شرح مدل MVC سیستم میاد. که باید دید مدل MVC سیستم چطور پیاده شده و می شه و کنترلر دیقیا چی کارست.

مثلا توی الگوی MVC که خودم استفاده می کنم اینطوریه :
نقل قول:کنترلر : یک object از تمام Application. دسترسی به قسمت های مختلف App از طریق Property ها ...
+ ارتباط با مدل/مدلها و ویو : کنترلر مقدار های ورودی را دریافت و به مدل ارسال می کند و نتیجه گرفته شده از مدل را به ویو ارسال می کند.
+ بوت : در boot-strap اطلاعات های لازم از Router گرفته گرقته و شی از کنترلر ساخته می شود نهایتا Action با Parameter های ارسالی Call می شود.
...

نقل قول:3- چندتا مدل داشته باشه.
توی کیک این چطوریه. من نتونستم پیداش کنم؟
  پاسخ
تشکر شده توسط : undefined
#7
(۱۳۹۱ مهر ۱۳, ۰۸:۱۸ ق.ظ)zoghal نوشته: رضا جان منظور از دست رسی مستقیم دقیقا چی هست؟
کد پی‌اچ‌پی:
$this->db-> 

به نظر من کنترلر ها باید دو نوع باشن .
یکی با مدلی ارتباط داشته باشه که ارتباط با دیتابیس رو بصورت ORM انجام بده .
کنترلر دوم هم اصلاً بدون مدل باشه . (مثل مواقعی که نیاز هست برای کپچا کنترلر بسازیم دیگه نه مدل میخواد نه دیتابیس)

راستی احسان ، اون والیدیت فارسی بود ، روی اوبونتو درست نشون داد .Angel
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : undefined
#8
نقل قول:3- چندتا مدل داشته باشه.

خیلی وقت پیش داخل کیک هم این مورد رو دیدم اما هیچ وقت ازش استفاده نکردم
اگه میشه کمی در مورد کاربردش برام توضیح بدین.

نقل قول:اما آیا امکان دسترسی مستقیم به دیتابیس رو توی کنترلر میذاری ؟

کلاس دیتابیس که لینک شد در این مورد توضیح میدم
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : Reza
#9
چیزایی مثه : set_include_path و spl_autoload_register ست شدن ؟
(همچین بی ربط هم با مبحث controller نیست!)
  پاسخ
تشکر شده توسط :
#10
در کیک در کنترلر یک پروپرتی داره به نام uses . وقتی یک نمونه از یک کنترلر ساخته میشه. کیک میاد مقدار این پروپرتی رو چک میکنه و طبق این پارامتر ها مدل ها رو ایجاد میکنه
کد:
/**
* An array containing the class names of models this controller uses.
*
* Example: `public $uses = array('Product', 'Post', 'Comment');`
*
* Can be set to several values to express different options:
*
* - `true` Use the default inflected model name.
* - `array()` Use only models defined in the parent class.
* - `false` Use no models at all, do not merge with parent class either.
* - `array('Post', 'Comment')` Use only the Post and Comment models. Models
*   Will also be merged with the parent class.
*
* The default value is `true`.
*
* @var mixed A single name as a string or a list of names as an array.
* @link http://book.cakephp.org/2.0/en/controllers.html#components-helpers-and-uses
*/
    public $uses = true;
فکر میکنم کامنت ها خود گویای همه جیز هستند. اگر موردی بود بگید تا توضیح بدم
  پاسخ
تشکر شده توسط : Reza undefined oia Y.P.Y


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان