Я создал веб-страницу, где в настоящее время
https://yousite.com/posts/edit/5
Когда ядро получает запрос,
$_GET['url']
сначала отфильтруйте, а затем взорвитесь для загрузки как
$url[0] = controller; //class thats extend controller
$url[1] = method; //module thats uses, private $db; queries
Но я хочу представить интерфейс с $ var, где он может быть использован для загрузки под-блогов с несколькими вариантами тем и для создания многопользовательских mvc.Где КАК ДОСТИГНУТЬ
https://yoursite.com/blogs/blogname/pages/edit/5
https://yoursite.com/blogs/blogname/dashboard/
будет полным URL-адресом, а также сохранит прежнюю структуру URL-адреса для основного сайта, где размещаются блогиможет быть дома, и это будет по умолчанию для загрузки основного сайта или может быть сделано с маршрутизацией.Моя текущая структура каталогов: -
/ App / Controller / Posts.php
/ App / Models / Post.php
/ App / Views / Posts /index.php
/ Public / index.php
/ System / Core / Core.php
Но тут я запутался,
Как динамически загружаться, https://yoursite.com/blogs/blogname/pages/edit/5 https://yoursite.com/BlogClass/BlogNameModuleClass/PagesClass/EditMethodClass/VarriableOrID
Как структура вызова и кода будет для загрузки и обновления этого типа глубины URL-запроса.
- Какой будет структура каталогов для этого проекта.
- Если интерфейс будет первой опцией для этой логики, как загрузить требуемый интерфейс из запроса URL и назначить его в качестве текущего интерфейса и вызывать методы с этим уровнем глубины URL с представлением модели и контроллером, если другим способом, пожалуйста, добро пожаловать.
Попросите меня помочь мне прояснить мои сомнения и предоставить рабочее решение с объяснениями для ясного понимания.
Мои текущие сообщения / редактировать / структура 2 класса ниже: -
<?php
class Posts extends Controller {
public function __construct(){
$this->postModel = $this->model('Post');
}
public function edit($id){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Sanitize POST array
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$data = [
'id' => $id,
'title' => checkInput($_POST['title']),
'title_err' => ''
];
// Validate data
if(empty($data['title'])){
$data['title_err'] = 'Please enter title';
}
// Make sure no errors
if(empty($data['title_err'])){
// Validated
if($this->postModel->updatePost($data)){
flash('post_message', 'Post Updated');
redirect('posts');
} else {
die('Something went wrong');
}
} else {
// Load view with errors
$this->view('posts/edit', $data);
}
} else {
// Get existing post from model
$post = $this->postModel->getPostById($id);
$data = [
'id' => $id,
'title' => $post->title,
];
// load default view
$this->view('posts/edit', $data);
}
}
// Class End
}
?>