EDIT: мой пример ниже – это скорее пост-перенаправление, чем MVC
Я читаю много о правильной структуре моей страницы, шаблоне MVC, фреймворках и т. Д., Но все же я смущен тем, какие части моей страницы лучше всего подходят под описанием модели, представления и контроллера. Теперь перед вами downvote я провел много исследований, чтобы отделить мою логику и сделать мою простую страницу, мне просто нужно подтверждение, что я делаю все правильно, что исправить / разделить, какая страница – это то, что согласно MVC и где я буду ссылку или включить index.php? Я не прошу многого, я надеюсь только для быстрого взгляда на мой код.
Я предоставил 3 разных страницы, которые я построил, чтобы они были инициализированы в качестве примера:
html, также отображает обработанные данные, которые пользователь запускает здесь:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Vaški gozd</title> <link href="../html/css/base.css" rel="stylesheet" type="text/css" /> </head> <body> <?php if(!$_POST and $poskodbe != '0') { ?> <p>Presenetil<?php text($spol); ?> te je <?php text($monster); ?> !</p> <form action='../php/gozd.php' method='post'> <input type='submit' name='action' value='Napadi' /> ali <input type='submit' name='action' value='Pobegni' /> <input type='hidden' name='monster' value= '<?php text($monster); ?>' /> </form> <?php } else if ($poskodbe == '0'){text($moznost); ?> <p><a href='../php/start.php'>Odpravi se proti domu</a></p> <?php } else { ?> <ul><?php foreach ($combat as $turns => $i) { ?> <li> <p><strong><?php text($i['napadalec']); ?></strong> <?php text(' napade '); ?><strong><?php text($i['branilec']); ?></strong> <?php text(' in mu napravi poškodbe za ') ?><strong><?php text($i['damage']); ?></strong> <?php text(' točk zdravja '); } ?> </p></li> </ul> <?php if(isset ($zmaga)) { ?> <p>Pregnal si <strong><?php text($monster_ime); ?></strong>! V naglici je za seboj pustil <strong><?php text($cekini); ?></strong> cekinov, ki jih seveda pobereš.</p> <p><a href='../php/gozd.php'>Raziskuj dalje</a></p> <?php } ?> <?php if(isset ($zguba)) { ?> <p>Podlegel si poškodbam <strong><?php text($monster_ime); ?></strong>.</p> <?php } ?> <p><a href='../php/start.php'>Odpravi se proti domu</a></p> <?php } ?> </body> </html>
php, который обрабатывает данные и возвращает результаты:
<?php session_start(); include 'config.php'; include 'stats.php'; $igralec_ime = $_SESSION['username']; $_SESSION['poskodbe'] = ($poskodbe = prikazi_stat('curhp', $igralec_ime)); if ($poskodbe == '0') {$_SESSION['moznost'] = ($moznost = 'Tvoje zdravje je resno ogroženo, vrni se domov!');} else { if ($_POST) { if($_POST['action'] == 'Napadi') { $igralec = array ( 'ime' => $igralec_ime, 'napad' => prikazi_stat('ofe',$igralec_ime), 'obramba' => prikazi_stat('def',$igralec_ime), 'curhp' => prikazi_stat('curhp',$igralec_ime) ); $monster_ime = $_POST['monster']; $monster = array ( 'ime' => $monster_ime, 'napad' => prikazi_monster_stat('ofe',$monster_ime), 'obramba' => prikazi_monster_stat('def',$monster_ime), 'curhp' => prikazi_monster_stat('maxhp',$monster_ime) ); $combat = array(); $turns = 0; while($igralec['curhp'] > 0 && $monster['curhp'] > 0) { if($turns % 2 != 0) { $napadalec = &$monster; $branilec = &$igralec; } else { $napadalec = &$igralec; $branilec = &$monster; } $damage = 0; if($napadalec['napad'] > $branilec['obramba']) { $damage = $napadalec['napad'] - $branilec['obramba']; } $branilec['curhp'] -= $damage; $combat[$turns] = array( 'napadalec' => $napadalec['ime'], 'branilec' => $branilec['ime'], 'damage' => $damage ); $turns++; } update_stat('curhp',$igralec_ime,$igralec['curhp']); if($igralec['curhp'] > 0) { update_stat('cek',$igralec_ime,prikazi_stat('cek',$igralec_ime)+ prikazi_monster_stat('cek',$monster_ime)); $zmaga = 1; $cekini = prikazi_monster_stat('cek',$monster_ime); } else { if ($igralec['curhp'] <0) {update_stat('curhp', $igralec_ime, '0'); } $zguba = 1; } } else { header('Location:../php/start.php'); exit; } } else { $query = sprintf("SELECT ime, spol FROM monsters ORDER BY RAND() LIMIT 1"); $result = mysql_query($query); list($monster, $spol) = mysql_fetch_row($result); } } $_SESSION['moznost'] = $moznost; $_SESSION['monster'] = $monster; $_SESSION['spol'] = $spol; $_SESSION['poskodbe'] = $poskodbe; $_SESSION['combat'] = $combat; $_SESSION['turns'] = $turns; $_SESSION['zmaga'] = $zmaga; $_SESSION['zguba'] = $zguba; $_SESSION['monster_ime'] = $monster_ime; $_SESSION['cekini'] = $cekini; $_SESSION['post'] = $_POST; header('Location:../php/gozd_kontroler.php',true,303); exit; ?>
php, которая включала html-страницу ранее и к которой мои данные манипулируют PHP-скриптом, перенаправляет для отображения результатов:
<?php session_start(); include 'razno.php'; $monster = $_SESSION['monster']; $spol = $_SESSION['spol']; $poskodbe = $_SESSION['poskodbe']; $moznost = $_SESSION['moznost']; $combat = $_SESSION['combat']; $turns = $_SESSION['turns']; $zmaga = $_SESSION['zmaga']; $zguba = $_SESSION['zguba']; $monster_ime = $_SESSION['monster_ime']; $cekini = $_SESSION['cekini']; $_POST = $_SESSION['post']; include '../html/gozd.html'; ?>
Какая страница предназначена для контроллера модели? Я вообще делаю это правильно? Где я могу связать или включить index.php?