За последние 24 часа нас посетили 112324 программиста и 6469 роботов. Сейчас ищут 1525 программистов ...

Помогите с фреймворком

Тема в разделе "PHP для новичков", создана пользователем valera2312, 25 авг 2018.

  1. valera2312

    valera2312 Новичок

    С нами с:
    25 авг 2018
    Сообщения:
    2
    Симпатии:
    0
    установлен xampp. Пишу фреймворк. Подскажите почему когда ввожу в браузере например localhost/account/login он ищет папку, а не вызывает нужный метод в Контроллере




    PHP:
    1. <?php
    2.  
    3. namespace application\core;
    4.  
    5. class Router{
    6.  
    7. protected $routes = [];
    8. protected $params = [];
    9.  
    10.  
    11.  
    12. function  __construct(){
    13.  
    14. $arr = require'application/config/routes.php';
    15. //var_dump($arr);
    16.  
    17. foreach ($arr as $key => $val) {
    18.     $this->add($key,$val);
    19.       }
    20. }
    21.  
    22. public function add($route,$params){
    23.  
    24. $route = '#'.$route.'#';
    25. $this->routes[$route] = $params;
    26.  
    27. }
    28. public function match() {
    29.         $url = trim($_SERVER['REQUEST_URI'], '/');
    30.         foreach ($this->routes as $route => $params)
    31.          {
    32.              
    33.  
    34.             if (preg_match($route, $url, $matches)) {
    35.              
    36.                 $this->params = $params;
    37.                 return true;
    38.             }
    39.         }
    40.         return false;
    41.     }
    42.  
    43. public function run(){
    44. if( $this->match()){
    45.     $path = 'application\controllers\\'.$this->params['controller'].'Controller';
    46.     if(class_exists($path)){
    47.         $action = $this->params['action'].'Action';
    48.         $controller = new $path;
    49.         $controller->$action();    
    50.                            }
    51. [php]<?php
    52. namespace application\controllers;
    53.  
    54.   return [
    55.  
    56.  
    57. ''=> [
    58.  
    59.      'controller' => 'main',
    60.      'action' => 'index',
    61. ],
    62.  
    63. 'account/login'=> [
    64.  
    65.      'controller' => 'account',
    66.      'action' => 'login',
    67. ],
    68.  
    69.  
    70. 'news/shows'=> [
    71.  
    72.      'controller' => 'news',
    73.      'action' => 'shows',
    74. ],
    75.  
    76.  
    77. ];
    78.     else
    79.     echo 'Не найден'.$path;
    80.     echo '</br>';                        
    81.  
    82.     }
    83.  
    84.   }
    85.  
    86.  
    87. }
     
    #1 valera2312, 25 авг 2018
    Последнее редактирование модератором: 26 авг 2018
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    @valera2312, нужно рерайтер у веб сервера конфигурировать
     
  3. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    @valera2312 Ну так ты что его просишь, то он тебе и выдает. Ты ведь наверное не на пустом месте начал что-то писать? Наверное видео, книжки посмотрел, почитал? И разве там говорили про .htaccess ?
    Ты скорее всего этот момент с .htaccess упустил.
     
  4. valera2312

    valera2312 Новичок

    С нами с:
    25 авг 2018
    Сообщения:
    2
    Симпатии:
    0
    Спасибо, разобрался)
    --- Добавлено ---
    Забыл про htaccess)