Какво е MVC

какво е ? https://bg.wikipedia.org/wiki/Model-View-Controller
Примери:
CodeIgnier - заповядай, мъчи се (шегувам се) :D :D

Ето ти видео уроци да видиш създаването на MVC фреймуорк в движение и да надникнеш в кода и логиката :) https://www.youtube.com/watch?v=_BU17JTVrhQ&list=PLjsqymUqgpST6BDlzkn7cztPXZYP-4kYD :idea: :?: :D
 
MVC е съкращението на един от design pattern-ите (сори, тъпо ми е да го пиша това на кирилица) за по-добро структуриране на кода - Model, View и Controller... влиза в секцията architectural design patterns. :D
С думи прости - нищо, което трябва да те плаши, когато някой го спомене. Идеята е да си структурираш кода така, че логиката ти за достъп до базата данни, базовата логика на приложението и дизайна да са разделени едни от други.
Измислено е от хора, които са блъскали заявки към базата данни, графичен интерфейс и контролна логика на едно място в хиляди класове. Явно след това им се е наложило да сменят интерфейса, контролната логика или са суичнали към някой друг database vendor и са си казали - пичове, не може то тъй...

Ето ти един краш-курс по MVC https://softuni.bg/trainings/1055/php-from-scratch-workshop
Много от най-добрите практики са показани тук, пък и Марио Пешев е сертифициран Java Developer, така че ще научиш как наистина се прилага ООП. :D
 
Сори за двойния пост, но ако си изгледал лекцията и са ти харесали design pattern-ите от лекцията, може да прочетеш тази книга https://www.amazon.com/Objects-Patterns-Practice-Matt-Zandstra/dp/1430260319

Авторът е бил дивелпър в Yahoo, чиято инфраструктура е залагала доста сериозно на PHP на времето.
 
Мисля, че схванах MVC.
М това е модела тук се слагат примерно файловете за вкарване и вкарване на инфо дб. V тук са файловете за хтмл формите и за извеждане от дб. С тук са файловете който обработват хтмл формите.
 
Всъщност, Controller-а е мястото, където се смесват Model и View. Заявките към сървъра минават през контролерите, където се решава кой модел да се използва и и как да се презентира.
 
ЕТО пример с код.
M модел

PHP:
public function insert($titles){
	  $sqls  = "INSERT INTO alb (name) VALUES(?)" ;
	  $stmt = $this->conn->prepare($sqls); 
      if ($stmt ) { 
       $stmt->bind_param('s', $titles); 
       $stmt->execute(); 
       print'Back page addnews 5 sec ';
       $stmt->close(); 
        } else { 
         trigger_error('Statement failed : ' . $stmt->error, E_USER_ERROR); 
         }
      return $stmt;
     }
V view
HTML:
<form name="upload" enctype="multipart/form-data" method="POST" style="text-align: center">
  <input type="text" name="title"><br>
  <input type="submit" name="send" value="Upload">
  </form>

С контролер
PHP:
$ins = new Con();
     if (isset($_POST['send'])){
     $titles = $_POST['title'];
     $ins->insert($titles);
	 }

Контролера взима информация от модела и става един файл. Правилно ли съм разбрал?
 
Fakeheal каза:
Само ще вметна, че codeigniter е най-лошия пример за MVC, поради простата причина, че не е MVC.
Никога не съм го ползвал, но интересното е, че в гугъл резултатите (дори само previewтата) показват точно обратното:

CodeIgniter is based on the Model-View-Controller (MVC) development pattern.
A lightweight open source web application framework that utilizes the MVC architecture
Codeigniter is PHP Framework which built on top of the MVC
CodeIgniter is a powerful PHP framework that can help you greatly ... logic from presentation by using a Model-View-Controller (MVC) dynamic
CodeIgniter is very flexible when it comes to following the MVC pattern
...
 
anonimen каза:
Fakeheal каза:
Само ще вметна, че codeigniter е най-лошия пример за MVC, поради простата причина, че не е MVC.
Никога не съм го ползвал, но интересното е, че в гугъл резултатите (дори само previewтата) показват точно обратното:

CodeIgniter is based on the Model-View-Controller (MVC) development pattern.
A lightweight open source web application framework that utilizes the MVC architecture
Codeigniter is PHP Framework which built on top of the MVC
CodeIgniter is a powerful PHP framework that can help you greatly ... logic from presentation by using a Model-View-Controller (MVC) dynamic
CodeIgniter is very flexible when it comes to following the MVC pattern
...

Виж сам: https://github.com/bcit-ci/CodeIgniter/tree/develop/system :) :)
 
Виж, когато говорим за design pattern-и, думата "трябва" не съществува... единственото, което трябва, е да знаеш, че съществуват, за да можеш да ги използваш, АКО ТИ ПОТРЯБВАТ. Ти си избираш дали и как да ползваш design patterns, защото MVC например може да не е най-подходящата архитектура за твоето приложение... то за това има и различни вариации на този pattern (MVVM например), на някой, MVC не му е свършил работа и си е измислил нещо подобно. Да следваш сляпо правилата на някой design pattern е много лоша идея... все пак сме дошли да вършим работа, а не да се занимаваме с това, къде да направим валидацията и тем подобни глупости.

Пак ще ти препоръчам да прочетеш книгата, която споменах. От там ще разбереш идеята на design pattern-ите.
 

Back
Горе