Как загрузить и обновить многоуровневый URL в Php - PullRequest
0 голосов
/ 19 сентября 2019

Я создал веб-страницу, где в настоящее время

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

Но тут я запутался,

  1. Как динамически загружаться, https://yoursite.com/blogs/blogname/pages/edit/5 https://yoursite.com/BlogClass/BlogNameModuleClass/PagesClass/EditMethodClass/VarriableOrID

  2. Как структура вызова и кода будет для загрузки и обновления этого типа глубины URL-запроса.

  3. Какой будет структура каталогов для этого проекта.
  4. Если интерфейс будет первой опцией для этой логики, как загрузить требуемый интерфейс из запроса 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
     }
    ?>
...