Рубрики
Uncategorized

Библиотека классов маршрутизации и пересылки маршрутов PHP поддерживает загрузку композитора

Автор оригинала: David Wong.

Исходный код и используйте демонстрационный адрес git: Нажмите, чтобы просмотреть

устанавливать

1. Добавьте следующее в каталог проекта composer. JSON

Добавить склад

"repositories": {
    "packagist": {
      "type": "composer",
      "url": "https://packagist.phpcomposer.com"
    },
    "croute": {
      "type": "vcs",
      "url": "[email protected]:luyunhua/croute.git"
    }
  }

Добавить зависимость

  "require": {
    "php": ">=5.5.9",
    "luyunhua/croute": "dev-master"
  }

2. Обновите зависимости

обновление композитора

с помощью

Давайте предположим, что ваш PHP-проект поддерживает автоматическую загрузку, поэтому вам не нужно работать с исходными файлами, такими как библиотеки include, при использовании дистрибутивов маршрутизаторов.

Конфигурация Nginx

Настройка сервера

server {
    listen       82;
    #listen       somename:8080;
    server_name  _;
    index index.php;
    try_files $uri
              $uri/
              @rewrite;

    location @rewrite {
        rewrite ^(.*)$ /index.php?_url=$1;
    }

    location ~ \.php$ {
        root /var/wwwroot/mframe;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }


     error_page   500 502 503 504  /50x.html;
     location = /50x.html {
        root   /usr/share/nginx/html;
     }
}

Nginx перенаправляет запросы PHP на порт 82 для обработки

    location ~ \.php$ {
        proxy_pass   http://127.0.0.1:82;
    }

Демонстрация основного кода

[email protected]
 * User: luyh
 * Date: 16/5/30
 * Time: 1:42 p.m.
 * File: index.php
 */
include __DIR__ . '/boots/autoload.php';

$fileRoute = new \Tomato\Route\FileRoute();
$fileRoute->get('/myroute/abc/\d+' ,'App\Ctrl\[email protected]');
$fileRoute->post('/myroute/post/\w+/d' ,'App\Ctrl\[email protected]');

$dispatcher = new \Tomato\Route\Dispatcher($fileRoute);
$dispatcher->run();