Это моя первая попытка написать что-то с помощью ООП, обычно я использую код типа spagethi с множеством функций, но я хочу попробовать и улучшить свои навыки PHP, поэтому в настоящее время я изучаю и считаю себя новичком / новичком, поскольку вы, вероятно, можете см. в моем коде. Помните об этом при ответе / чтении.
Поэтому я создал контроллер с моими классами и методами.
Тогда у меня есть представление, которое является простой регистрационной формой.
Модель, называемая router.php, работает следующим образом. Пользователь отправляет форму, в которой он получает страницу, из которой была отправлена форма, и взорвать () ее. если имя страницы совпадает с именем страницы, жестко запрограммированным внутри функции маршрутизатора, оно обработает PHP-код, полученный от контроллера.
Проблема заключается в том, что имя страницы жестко закодировано в модели маршрутизатора $page = explode('/', $URL) if($page[3] == 'signup.php'){}
если имя страницы изменяет его приведет к ошибке. Как я могу улучшить это?
модель / router.php
$URL = $_POST['url']; $page = explode('/', $URL); if($page[3] == 'signup.php'){ require_once('../controller/users.php'); $obj = new employer(); $obj->setEmployerName($_POST['fullname']); $obj->getEmployerFirstname(); $obj->getEmployerLastName(); $obj->setPword($_POST['pword']); $obj->setEmail($_POST['email']); echo $obj->registerNewEmployer(); ?>
Просмотр REGFORM
<form role="form" id="registerForm" name="registerForm" method="post" action="../model/router.php"> <div class="form-group"> <label for="fullname" class="col-2 col-form-label">Fullname</label> <div class="col-4"> <input type="text" name="fullname" required="required" id="fullname" class="form-control" placeholder="Enter Fullname" /> </div><!--/col4--> </div><!--/form group--> <div class="form-group"> <label for="email" class="col-2 col-form-label">Email</label> <div class="col-4"> <input type="email" name="email" required id="email" class="form-control" placeholder="Enter Email Address" /> </div><!--/col4--> </div><!--/formgroup--> <div class="form-group"> <label for="pword" class="col-2 col-form-label">Password</label> <div class="col-4"> <input type="password" name="pword" required="required" id="pword" class="form-control" placeholder="Enter Password" /> </div><!--/col4--> </div><!--/form group--> <div class="form-group"> <label for="pword2" class="col-2 col-form-label">Confirm Password</label> <div class="col-4"> <input type="password" required id="pword2" name="pword2" class="form-control" placeholder="Confirm Password" /> </div><!--/col4--> </div><!--/formgroup--> <div class="form-group"> <!--NOTE THIS FIELD--> <input type="text" style="display: none" name="url" value="<?php echo $_SERVER['REQUEST_URI'] ?>" /> <button class="btn btn-info btn-size form-control" name="submitBtn" id="submitBtn">Join</button> </div><!--/col12--> </form>
Вопрос
Как упоминалось выше … Проблема с сценарием «router.php» заключается в том, что имя страницы жестко закодировано в модели маршрутизатора $page = explode('/', $URL) if($page[3] == 'signup.php'){}
если имя страницы изменится, это приведет к ошибке. Как я могу улучшить / изменить это?