Boplo.ir
rss

من در Facebook


جستجو


آخرین مطالب

مطالب همینجوری

بر و بچ

MyView Tween

دوستشون دارم

بیلبورد

دامین برای فروش: CleanCode.ir
FastFeed.ir
Fonvi.com

تماس


انواع و اقسام سفارشات طراحی و برنامه نویسی سایت پذیرفته میشه. از سایت حمایت از خرگوشهای صورتی گرفته تا سایت قاچاق اعضای بدن!
تماس

 

از بيماران سرطاني حمايت كنيم

A new begining
AHHP presents

 

آدرس کوتاه: http://Boplo.ir/:140

MVC چیست؟
۱۹ شهریور ۱۳۸۹ ساعت ۰۴:۴۲

پی اچ پی
اشنایی با مفهوم MVC

الگوهای طراحی صرفا روشهایی برای نظم دادن و ساختار بخشیدن به Applicationها هستند. وجودشون به هیچ وجه الزامی نیست ولی مفید هستند مگر اینکه روش ما روش بهتری برای خودمون و Applicationامون باشه.
MVC یکی از الگوهای پرکاربرد PHP هست که تقریبا جوابگوی هر نوع Applicationای می تونه باشه و مخفف سه کلمه View ، Model و Controller هست.
مفهوم MVC براساس جداسازی بخشهای اساسی تعریف شده. به این صورت که کدها رو به سه بخش View، Model و Controller تقسیم کنیم تا کنترل و توسعه کدها به بهترین شکل ممکن انجام بشه.

این سه بخش به این شکل تعریف میشه: کدهایی برای ارتباط با دیتابیس، کدهایی برای ساختن خروجی و کدهایی برای کنترل و دسترسی به این دو بخش.
توضیح دقیقتر این سه بخش به شرح زیر است:

  • Model: کدهایی برای تبادل اطلاعات با دیتابیس. این بخش مثل یک موتور عمل می کنه. هیچ ارتباطی با اتفاقات نداره فقط ازش اطلاعات درخواست می کنیم، از دیتابیس بیرون میکشه و میده.
  • View: کدهایی برای سر هم کردن اطلاعات و ساختن خروجی. این بخش به هیچ عنوان کد منطقی (کد عملیاتی، کدی که کار عملیاتی انجام میده) نداره فقط اطلاعات رو میگیره تحلیل می کنه، تحت قالب قرار میده و به Controller میفرسته تا نمایش داده بشه.
  • Controller: در واقع Controller بقیه کارها رو انجام میده. اینکه چه درخواستی از کاربر رسیده، چه درخواستی از Model باید بشه، اطلاعات گرفته شده از Model چطور باید پردازش بشه، چه Viewای باید انتخاب بشه و چه اطلاعاتی به View باید ارسال بشه.


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

  • کاربر با زدن دکمه ورود فرم، اطلاعاتش رو به سایت ارسال می کنه و درخواست یا Request برای لاگین رو میده.
  • Controller این درخواست رو میگیره، بررسی میکنه که از چه نوعی هست. نتیجه بررسی این خواهد بود که درخواست از نوع لاگین بوده و به دنبال نام کاربری و کلمه عبور از فرم خواهد بود.
  • Controller اطلاعات فرم رو گرفته، تحلیل کرده و میخواد با اطلاعات دیتابیس مطابقت بده که آیا چنین نام کاربری وجود داره یا نه و کلمه عبورش صحیح هست یا نه. برای این کار Model مناسب برای این کار رو پیدا می کنه، اطلاعات رو بهش میده تا ازش نتیجه بگیره.
  • Model دیتابیس رو چک می کنه و مطابقتی پیدا نمی کنه و این جواب رو به Controller برمیگردونه.
  • Controller این نتیجه رو پردازش می کنه و میفهمه که باید فرم لاگین و پیغام خطا رو به کاربر برگردونه.
  • Controller براساس تحلیلهاش، View مناسب رو پیدا می کنه و اطلاعات قابل نمایش رو به View میده.
  • View یک قالب خام هست که منتظر پر شدن با اطلاعات هست مثلا View فرم لاگین، یک بخش پیغام داره. این بخش با اطلاعاتی که از Controller میاد پر خواهد شد. Controller این پیغام رو فرستاده، View در فرم جایگزین می کنه.
  • View فرم تحلیل شده رو به Controller میفرسته.
  • Controller نتیجه View رو به کاربر میفرسته (چاپ می کنه).

حالا این مراحل رو در عمل با یک مثال فوق العاده ساده آزمایش می کنیم:
ابتدا کدها رو می نویسیم:

View:

<form method="post">
	<?php echo (isset($message) ? $message : ''); ?>
	Username: <input type="text" name="username" value="" />
	Password: <input type="password" name="password" value="" />
	<input type="submit" name="action" value="login" />
</form>

Model:

Class myModel {
	public function __construct() {
		$this->conn = mysql_connect('localhost', 'root', '');
		mysql_select_db('myDB');
	}
	
	public function getRow($sql) {
		$query = mysql_query($sql);
		return mysql_fetch_assoc($query);
	}
	
	public function escape($str) {
		return mysql_real_escape_string($str);
	}
}

Controller:

include './model/myModel.php';
$myModel = new myModel;

if(isset($_POST['action'])) {
	
	if($_POST['action'] == 'login') {
		$username = $myModel->escape($_POST['username']);
		$password = $myModel->escape($_POST['password']);
		$password = MD5($password);
		
		$response = $myModel->getRow("
			SELECT * FROM users 
			WHERE
				`username`='$username'
				AND `password`='$password'
		");
		
		if($response == false) {
			$message = 'Invalid Username or Password';
			$view = './view/login-form.php';
			return include $view;
		} else {
			// do something
		}
	}
	
	
	if($_POST['action'] == 'something') {
		// do something
	}
}

اینجا وقتی فرم ارسال میشه. در Controller از اونجاییکه در این مثال ابتدایی فقط یک Model داریم ازش نمونه گیری می کنیم.

این Model یک کلاس هست با سه تا متد. متد اصلی که فقط به دیتابیس متصل میشه. متدی که اطلاعات رو پردازش می کنه و متدی که دستور SQL میگیره و یک سطر از دیتابیس رو میده.
نکته قابل توجه مهم در Model اینه که همونجور که واضحه در Model هیچ خبری از Controller نیست در واقع خبری از هیچی نیست. Model هیچ ارتباطی با سایت و اسکریپتها نداره، فقط میشه ازش استفاده کرد.
Controller مثلا براساس action عمل می کنه. اومده مقادیری که از Action میتونه بیاد رو چک کرده. ما در این مثال با حالت login کار داریم. وقتی کاربر فرم رو ارسال کرده، مقدار login رو برای Action فرستاده.
Controller توسط متد escape از Model اطلاعات لازم برای لاگین رو چک کرده و توسط Model اطلاعات کاربری با چنین مشخصاتی رو درخواست کرده.
از اونجایی که چنین کاربری وجود نداره، پس Model هم مقدار false میده. Controller پیش بینی چنین نتیجه ای رو کرده و در این حالت فرم لاگین رو به عنوان View انتخاب کرده. یک متغیر به این View ارسال کرده و نمایش داده.

 

 

تا اینجاش مثال و تعریف بود. سوال اصلی اینجا شروع میشه که این کارا به چه درد میخوره؟
معجزه MVC یک کلمه است. یک کلمه خیلی ساده ی سه حرفی: نظم!
عادت خیلی بدی که اغلب برنامه نویسان دارند اینه که همه کدها رو با هم قاطی می کنند و یک آش بد مزه درست می کنند. MVC ضمانت می کنه که تعامل با دیتابیس فقط در Model انجام میشه هیــــچ جای دیگه ای نباید دنبالش بگردیم. همه خروجی ها توسط بخش View کنترل میشه و هیــــچ جای دیگه ای نباید دنبالش بگردیم. در Controller هیــــچ اثری از echo یا کد HTML یا توابع MySQL نیست. MVC همونطور که از اسمش مشخصه یک الگوی طراحیه. الگو یعنی شیوه ی قابل تقلید.
پس MVC چیزی جز یک مفهوم نظم بخشیدن نیست. مفهومی که میگه کدها رو به سه قسمت مجزا تقسیم کنیم تا کنترل خوبی روش داشته باشیم. این مثالی که اینجا زدم فوق العاده ابتدایی و ساده بود ولی مفهوم رو داشت این یعنی برای اجرای MVC، لازم نیست حتما سراغ فریم ورکهای MVC بریم یا حتما نباید Applicationامون بزرگ باشه تا سراغش بریم. یک اسکریپت خیلی کوچیک رو هم میشه براساس MVC طراحی کرد.

 

حالا یک بحث تکمیلی. چطور با فریم ورکهای MVC کار کنیم؟
فریم ورکهای MVC مثل CakePHP یا CodeIgniter یا MODx Revolution (:دی) و غیره، با همه پیچیدگی ها و شلوغ پلوغی هاشون، این ساختار رو دارند. کافیه ساختار MVC رو توشون پیدا کنیم. بقیه اش دیگه میشه یاد گرفتن متدها و کلاسهاشون. یعنی اولین گام اینه که کشف کنیم فلان فریم ورک، چطور داره Controllerاش رو استفاده می کنه، کجا و به چه شکل. از اونجایی که Controller با Model در ارتباطه، می تونیم شکل تعامل با Model رو کشف کنیم و برای View هم به همین شکل. مثلا Object اصلی ای وجود داره برای دسترسی به Modelها. این رو که متوجه بشیم، فقط کافیه بریم ببینیم چه Modelهایی داریم، چه توابع یا کلاسهای داریم. خلاصه با پیدا کردن سر و ته MVC توی کوه کدهاشون، 80 درصد کار انجام شده بقیه اش توابع و کلاسهاست که باید بخونیم تا یاد بگیریم.

امیدوارم اگر MVC رو نمیشناختی این مقاله کمکی کرده باشه
همچنین امیدوارم شاهد Applicationهای بهتر و قوی تری توسط ایرانی ها باشیم.

 

تو چی فکر می کنی؟


مهدی یعقوبی : من که چیزی نمیدونستم از این mvc میخواستم فریم ورک بنویسیم :دی ، حالا که میدونم چیه برم فریم ورکمو بنویسم :دی
(4 سال و 2 ماه و 17 روز و 13 ساعت و 43 دقیقه پیش)

ماهان : خوب من همیشه تو applicationهام همین کار رو می کردم و می کنم ولی در واقع نمی دونستم اسمش چی بود !. ممنون که توضیح دادی.
(4 سال و 2 ماه و 15 روز و 16 ساعت و 45 دقیقه پیش)

حامد : عالي بود و كاملا شفاف ، ممنون از مقاله خوبت
(4 سال و 2 ماه و 8 روز و 21 ساعت و 6 دقیقه پیش)

مسلم : سلام

من بدینوسیله اظهار تاسف شدید میکنم از اینکه به اینجا سر نمیزنم (برای خودم) و قول میدم برای خوندن این همه مطلب هلو اقدام لازم رو به عمل بیاورم.

با تشکر
:D
(4 سال و 2 ماه و 7 روز و 12 ساعت و 35 دقیقه پیش)

EbiPenMan : منم واقعا خوشحالم که تونستم همچین سایت پر محتوا و مفیدی رو پیدا کنم.

واقعا خسته نباشید
(4 سال و 1 ماه و 23 روز و 2 ساعت و 2 دقیقه پیش)

خانم مهندس : سلام-من مهندس کامپیوتر هستم وبرنامه نویس php یک پسر دارم که اسمش ا میرحسین است و خیلی شیطون بلا ا ست. از مقاله است استفاده کردم. متشکرم
(4 سال و 1 ماه و 18 روز و 15 ساعت و 42 دقیقه پیش)

یک طراح وب : ساده، شفاف و رسا. متشکر.
(3 سال و 11 ماه و 24 روز و 15 ساعت و 53 دقیقه پیش)

یک دوست : واقعا عالی بود !

ممنون
(3 سال و 11 ماه و 24 روز و 11 ساعت و 19 دقیقه پیش)

Alir3z4 : مطلب خوبي بود، اونموقع كه نميدونستم MVC چيه اين بدرد خورد!
اميرحسين دمت جيز ...
تهش هم باس ميگفتي ملت ZF استفاده كنيد تا ثواب مشرف شدن واست حساب ميشد :D
(3 سال و 10 ماه و 12 روز و 10 ساعت و 35 دقیقه پیش)

hamid : salam , merc az maghalat amir hossein age vaght dary bia in mvc ro kamel tar kon va ye jooraei bia avalin kasi bash ke ye refrence kamel ba mesale karbordy vase usera bezar ke mvc ro estefade konan
(3 سال و 10 ماه و 54 دقیقه پیش)

مجتبي اكبرزاده : سلام
ازتون تشكر مي كنم
خيلي جالب توضيح داده بوديد.
من چند وقت پيش يك مقاله توي گوگل اسكولار خوندم راجع به SVC كه فكر مي كنم نسل بعد از MVC باشه و توي برنامه هاي AJAX BASE كاربرد داره. اگه اون رو هم توضيح بدي فكر مي كنم مطلبت كامل بشه
(3 سال و 9 ماه و 25 روز و 4 ساعت و 36 دقیقه پیش)

محمد نوچمنی : سلام من این کدها رو چطور اجرا کنم
مقدمات رو آماده کردم یعنی :
-دیتابیس و جدول رو ایجاد کردم.
-این سه قسمت رو تو سه فایل جداگانه قرار دادم
-حالا چه کار کنم؟
(3 سال و 9 ماه و 17 روز و 3 ساعت و 12 دقیقه پیش)

امیرحسین : همین دیگه. این ساختار رو حفظ کنید تا سیستم شما بصورت MVC طراحی شده باشه و بتونید از خصوصیاتش بهرمند بشید...
(3 سال و 9 ماه و 16 روز و 17 ساعت و 16 دقیقه پیش)

یک دوست : سلام عزیز جون
خیلی خیلی عالی بود
من چند تا سایت مختلف رو خوندم
اما هیچ کدوم به خوبی و رسایی شما توضیح نداده بودند
مخصوصا که مثال هم زده بودید
خیلی حال داد!
بازهم ممنونم
(3 سال و 9 ماه و 4 روز و 10 ساعت و 35 دقیقه پیش)

پیمان : تو این روش model عملا با یه فایل کتابخانه ای فرقی نداره و دوباره خیلی از پیچیدگی های سیستم تو controller اتفاق میفته و خلاصه که به نظرم مزیت چنانی هم نداره فقط از اسپاگتی کد زدن بهتره.
اگر کنترلر فقط یک سوئیچ بود و مدل یک لایه کار با دیتابیس به صورت sql شاید بهتر میشد یعنی تو کنترلر کد sql نزنه
(3 سال و 8 ماه و 24 روز و 2 ساعت و 17 دقیقه پیش)

امیرحسین : اینجا صحبت سر مفاهیمه!
برای اجرای مؤثر، حرف شما کاملا صحیحه و باید وارد جزییات شد.
(3 سال و 8 ماه و 22 روز و 7 ساعت و 5 دقیقه پیش)

هادی : thanks a lot!
(3 سال و 7 ماه و 29 روز و 6 ساعت و 8 دقیقه پیش)

محمدرضا : سلام رفیق
بسیار شیوا و رسا حق مطلب رو رسوندی.واقعا لازم بود قبل از خوندن منابع اصلی این مطالب خونده بشه
ممنون.
(3 سال و 7 ماه و 27 روز و 18 ساعت و 58 دقیقه پیش)

حسین سرلک : سلام خدمت شما.
از شما برای ذکر نکردن منبع مطلب MVC عزرخواهی میکنم.
(3 سال و 7 ماه و 25 روز و 6 ساعت و 40 دقیقه پیش)

امیرحسین : ممنون از شما.
(3 سال و 7 ماه و 25 روز و 4 ساعت و 44 دقیقه پیش)

امیر د : با سلام و خسته نباشید
دوست عزیز مطلب خوبی رو نوشتید ولی شما گفتید که mvc یکی از مفاهیم php هست ولی بهتر بود می گفتید زبان های سطح بالا چون این مفهوم توی asp که هست و توی C# هم مطمئنا اسم معماری 3 لایه رو که همین mvc هست شنیدید!؟
اینطوری یه خورده مقاله تون زیر سوال می ره . موفق باشید
(3 سال و 7 ماه و 23 روز و 3 ساعت و 15 دقیقه پیش)

امیرحسین : شما هم مثل اینکه متاسفانه دچار سندرم PHP/ASP هستید که از این جمله، چنین برداشتی میکنید.
یکی میاد میگه: طراحی بدنه از نقاط قوت BMW است. یکی دیگه میاد میگه پس Toyota چی؟!
اگه به مفهوم الگوهای طراحی واقف باشیم میفهمیم که وابسته به زبان نیستند.
(3 سال و 7 ماه و 22 روز و 5 ساعت و 54 دقیقه پیش)

احسان ملکی زوارم : خودمم هم خبر نداشتم ولی این سیستم رو از 3 سال پیش داشتم کار میکردم××
(3 سال و 7 ماه و 10 روز و 5 ساعت و 52 دقیقه پیش)

habib : دوستان
به نظر من این کار خیلی خوبه و یه امکان هایی هم به ما میده
از جمله دسترسی به کد ها سخت تر میشه و تا حدودی امنیت بالاتر میره

اما اگه بخواهیم از این مورد استفاده کنیم بهتره (تجربه شخصی بنده ) از کلاس ها و فایل های متعدد و همچنین require کردن فایل ها استفاده کنیم

بحث آخر و تکنیکی که شما را یه حرفه ای نشون میده اینه که شما از smarty استفاده کنید و حتی یه دونه کد html و echo در فایل php نداشته باشید
(3 سال و 7 ماه و 9 ساعت و 37 دقیقه پیش)

علی : دست مریزاد! :)
(3 سال و 6 ماه و 22 روز و 17 ساعت و 31 دقیقه پیش)

Ehsan : متشکرم
(3 سال و 5 ماه و 16 روز و 15 ساعت و 15 دقیقه پیش)

حمید : بابا خیلی حال میکنم با سایتت یا وبلاگت یا ...
لطفا از موتور اسمارتی هم توضیح بدید
یه سوالم دارم : من حدود یک ساله پشت اینترنتم که پی اچ پی یاد بگیرم و همه چی رو میدونم از ساخت تابع تا ایجاد کلاس و متد و ...
ولی نمیدونم از کجا شروع کنم میخوام منظم و به صورت استاندارد برنامه نویسی کنم مثل همین model view controller و اسمارتی
لطفا یه مبحثی در این باره ایجاد کنید خیلی خیلی ممنون از سایت قشنگتون
(3 سال و 5 ماه و 9 روز و 4 ساعت و 43 دقیقه پیش)

hf : بسیار عالیه لطفا ادامه بدین
(3 سال و 4 ماه و 28 روز و 28 دقیقه پیش)

حسین : بسیار عالی بود لطف کنید و از این مطالب آموزشی شفاف بگذارید.
(3 سال و 3 ماه و 8 روز و 16 ساعت و 51 دقیقه پیش)

مشهدی : من کلا موافق این سیستم MVC نیستم. البته اگه برای یک پروژه خیلی بزرگ شاید لازم بشه ولی برای موارد معمولی وقت تلف کردنه. در واقع شما باید هم PHP یاد بگیرید و هم یک زبان دیگه که فریم ورک باشد (مثل CakePHP) و توابعش و متدها و ... و در ضمن وابسته میشین به فریم ورک.
من شخصا پروژه بزرگی (در حد 200 میلیون تومن) انجام داده با همین PHP معمولی و بسیار بسیار هم فرآیند توسعه آسون بوده برام.
(3 سال و 1 ماه و 23 روز و 16 ساعت و 52 دقیقه پیش)

امیررضا : دم شما گرم من هم نمیدونستم چیه. در این زمینه هم مشکل زیاد داشتم. کلا چند وقت بود دنبال یک راه حل خوب بودم
(3 سال و 1 ماه و 2 روز و 10 ساعت و 52 دقیقه پیش)

سامان وحدت : The Model-View-Controller (MVC) Design Pattern for PHP

http://www.tonymarston.net/php-mysql/model-view-controller.html
(3 سال و 27 روز و 7 ساعت و 46 دقیقه پیش)

حمید سلطانی : یکم خطا داری برادر!:دی
http://en.wikipedia.org/wiki/Model-view-controller
(3 سال و 26 روز و 17 ساعت و 29 دقیقه پیش)

hilda : damet garm
(3 سال و 20 روز و 2 ساعت و 14 دقیقه پیش)

kingnothing : سلام.
مطالب خیلی خوب و مفید بود. واقعا ممنون.
موفق یاشید.
(3 سال و 19 روز و 8 ساعت و 21 دقیقه پیش)

حامد : مطلب بسیار خوبی بود.
چند جا در مورد این معماری خونده بودم ولی تو این مطلب کامل متوجه موضوع شدم.
از این قبیل مقالات تو وب فارسی زیاد نوشته نمیشه.
ممنون امیرحسین
(3 سال و 13 روز و 4 ساعت و 57 دقیقه پیش)

ارش : بسیار بسیار بسیار عالی. من همیشه گفتم یکی از دلایل عدم پیشرف ماها اینه که اطلاعاتمون رو انتقال نمیدیم. تعداد سایت های تجاری و مزخرف به میلیون میرسه اما همش چند تا سایت علمی درست داریم که مطمئنا یکیش همینه. بازم ممنون از مقاله ی خوبت و امیدوارم با قدرت به کاری که میکنی ، یعنی انتشار مقالات علمی ادامه بدی
(3 سال و 11 روز و 12 ساعت و 35 دقیقه پیش)

sara : از مطالب پر محتوا ومفید تون ممنونم
(2 سال و 11 ماه و 28 روز و 18 ساعت و 4 دقیقه پیش)

مهسا : مزسی خیلی عالی بود
(2 سال و 4 ماه و 19 روز و 11 ساعت و 21 دقیقه پیش)

آرسس : واقعا ممنونت هستم. با چند سطر شیوا، دنیایی رو بروم باز کردی
(2 سال و 4 ماه و 18 روز و 7 ساعت و 36 دقیقه پیش)

Return.zero : سلام خیلی عالی بود.تا امروز اسپاگتی مینوشتم ولی چند روزه خسته شدم دنبال یه کم نظم بودم این MVC چیز خوبیه کاش در مورد این فریم ورکها بیشتر توضیح میدادین به هر حال خیلی عالی بود مرسی
(2 سال و 4 ماه و 13 روز و 3 ساعت و 3 دقیقه پیش)

مسعود : خیلی خوب بود
ممنون
(2 سال و 4 ماه و 4 روز و 17 ساعت و 49 دقیقه پیش)

رامین : خوب بود ممنون
(2 سال و 3 ماه و 25 روز و 11 ساعت و 8 دقیقه پیش)

م.الف : سلام
من بارها و بارها اومدم ت وسايتت و از اين مطلب ديدن كردن ولي هيچ وقت دقت نكردم
اين بار كامل خوندمش و كلي لذت بردم !@
باور كن كلي ثواب جزيل بردي!@
دستت درد نكنه
(2 سال و 3 ماه و 6 روز و 7 ساعت و 22 دقیقه پیش)

mojtaba : خیلی خوب بود فقط اگر ادامه بدید و با مثالهای بیشتر و کاربردی تر پیش برید یه عمر دعا تون میکنم
(1 سال و 10 ماه و 23 روز و 3 ساعت و 13 دقیقه پیش)

یک دوست : تشکرات فراوان دارم . خدا خیرت بده
(1 سال و 5 ماه و 23 روز و 14 ساعت و 27 دقیقه پیش)

محمد مصطفی شهرکی : با سلام، به نظرم توی مثالی که گذاشتین، دو مشکل جدی وجود داره و اون اینکه طبق اصول MVC توی کنترلر نباید هیچگونه Query نوشته بشه. درواقع باید توی مدل بصورت Parametrized Query کار بشه یعنی پارامترهای کوئری مثل اسامی فیلدها و مقادیر و شرطها... ارسال بشه و کوئری براساس اونها تولید بشه و نتیجه هم برگرده. نه اینکه کوئری توسط کنترلر ساخته بشه و براش ارسال بشه. ضمناً توی اصول معماری جدید MVC توصیه شده که تمام منطق نمایش اطلاعات توسط View برعهده گرفته بشه نه اینکه کنترلر داده های دریافتی از مدل رو تحویل کنترلر بدیم و اون تجزیه و تحلیل کنه و بعد بفرسته برای View
منبع: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
(1 سال و 4 ماه و 17 روز و 18 ساعت و 39 دقیقه پیش)

امیرحسین : دوست عزیز، هدف این مقاله کانسپت کلی MVC هست نه جزییات پیاده سازیش.
وظیفه‌ی مخاطب هست تا بعد از درک مفهوم بره دنبال جزییات...
(1 سال و 4 ماه و 17 روز و 16 ساعت و 57 دقیقه پیش)

محمد مصطفی شهرکی : درسته این رو قبول دارم ولی بحث نوشتن کوئری توی Controller از پایه با اصول MVC تناقض داره. کلاً توی Controller نباید Query بیاد و محل نوشتن دستورات دیتابیس توی Model هست. این رو نمیشه بگیم جزئیات محسوب میشه چون اصول بنیادی MVC رو داره نقض میکنه.
(1 سال و 4 ماه و 17 روز و 13 ساعت و 9 دقیقه پیش)

امیرحسین : یکی از مفاهیم MVC، قطع دسترسی Controller از لایه‌ی داده است.
اینجا کوئری زبان ارتباط بین لایه Controller و مدل انتخاب شده و یجور Command به مدل در نظر گرفته شده تا مدل پردازشش کنه و جواب رو از لایه‌ی دیتا دریافت کنه...
همونجور که گفتم هدفم اینجا بیشتر از کدنویسی، توضیح مفهوم بوده و نخواستم برای توضیح و تعریف ۱۰۰ خط کد بنویسم که خواننده گیج بشه.
ولی در کل حق با شماست باید این توضیحاتی که الان دارم اینجا میگم رو تو متن مقاله مینوشتم یا مثال دیگه‌ای پیدا میکردم که کسی دچار اشتباه نشه.
سرم یکم خلوت شه حتما این مقاله رو آپدیت میکنم.
(1 سال و 4 ماه و 17 روز و 9 ساعت و 8 دقیقه پیش)

تازه کار : می خواستم واقعا از توضیحات ساده ولی غنی و پربارتون تشکر کنم. من چند وقت بود مقاله های mvc رو می خوندم ولی متاسفانه نمی تونستم این مبحث رو درک کنم. حالا با خوندن این مقاله شما کاملا دیدم نسبت به mvc تغییر کرد و می تونم بگم تا حدی کامل شد. واقعا دستتون درد نکنه...
(1 سال و 3 ماه و 27 روز و 4 ساعت و 11 دقیقه پیش)

یک دوست : مقاله تون رو خوندم دیدم نمیشه بی تشکر رد شد.
مرسی
(1 سال و 1 ماه و 7 روز و 10 ساعت و 41 دقیقه پیش)

etc : آها حالا شد
یکی تونست بفهمونه به من که تا حالا MVC مینوشتم و خبر نداشتم.
ولی از نوشته توی سایتت خوشم نیومد از حمایت خرگوش تا قاچاق انسان
هر کسی ارزش کار کردن نداره
در ضمن مثل اینکه از css transform
خیلی خوشت اومده که همه جا گذاشتیش...
حتی تو کپجا :)
با تشکر
etc
(1 سال و 3 روز و 6 ساعت و 25 دقیقه پیش)

arash : واقعا خوب بود.
با سپاس از شما
(10 ماه و 6 روز و 22 ساعت و 56 دقیقه پیش)

mahan : مرسی داداش، از دسته افراد مشمول خط یکی مونده به آخر هستم :)
(8 ماه و 23 روز و 1 ساعت و 47 دقیقه پیش)

چیا : همه فقط مفاهیم رو توضیح میدن و کسی نیست نحوه ی پیاده کردن رو توضیح بده ... در کل خوب شد اینجا رو پیدا کردم ...
موفق باشی
(8 ماه و 5 روز و 12 ساعت و 26 دقیقه پیش)

مهدیه : ممنون خیلی ساده و روان توضیح داده بودید.
(3 ماه و 23 روز و 8 ساعت و 23 دقیقه پیش)

 

me

امیرحسینم. اسمم رو دوست دارم، خودم رو دوست دارم. تهران زندگی می کنم. فارغ التحصیل مهندسی صنایع هستم. برنامه‌نویسی و طراحی وب می کنم. در واقع Web Developer محسوب میشم. برنامه نویسی و وقت گذرونی با وب تنها کاریه که خسته ام نمی کنه.
آدم خیلی سردی هستم، اینو دور و وری هام میگن. ولی به نظر خودم سرد نیستم در واقع گرمای خودم رو کم بروز می دم! آدما رو اغلب دوست دارم غیر از اون مواقعی که اونا من رو نادیده میگیرن!

این سایت رو بعد از کلی اینور اونور دوباره راه انداختم تا هرچی دوست دارم توش بنویسم، چه کسی بخونه چه نخونه.
خلاصه اینجا خونه منه،

به خونه امیرحسین خوش اومدی...

MODx | Template World

Powered by MODx