Учебное пособие по тонкому тесту $app-›get(x) error

После выполнения следующего учебника (9:48) о Slim и тестируя функцию Slim, я все еще получаю сообщение «Страница не найдена».

Программа должна отображать любое слово, введенное в строку поиска после определенной точки, например, при поиске "http://localhost/authentication/public/test/Hello", страница должна отображать «Hello», страница должна отображать «Hello».

Это делается с помощью файла .htaccess для перенаправления любой ссылки на index.php. Затем файл index.php запускает файл php, который называется start.php.

Любое предложение, почему это может не работать?

Тонкий v3.x

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

index.php

<?php

require '../app/start.php';

$app->run();
?>

start.php

<?php 

use Slim\App;

session_cache_limiter(false);
session_start();

ini_set('display_errors', 'On');

define('INC_ROOT', dirname(__DIR__));

require INC_ROOT . '/vendor/autoload.php';

$app = new App();

$app->get('/test/:name', function($name) {
echo "Hello! {$name}";
});
?>

person Philipp Winter    schedule 13.07.2016    source источник
comment
Используете ли вы веб-сервер Apache? Где в структуре каталогов находятся .htaccess и index.php? По какому URL вы напрямую обращаетесь к вашему index.php, это localhost/authentication/public/index.php< /а>?   -  person jirka    schedule 14.07.2016


Ответы (1)


Проблема в том, что вы пытаетесь использовать Slim 2 Code при использовании Slim 3. Вы должны изменить свой код на новую структуру или переключиться обратно на v2.

Пример, подобный вашему, есть на домашней странице slimframework:

//example taken from slimframework.com
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'vendor/autoload.php';

$app = new \Slim\App;
$app->get('/hello/{name}', function (Request $request, Response $response) {
    $name = $request->getAttribute('name');
    $response->getBody()->write("Hello, $name");

    return $response;
});
$app->run();

Я рекомендую прочитать официальную документацию.

person danopz    schedule 15.07.2016
comment
Кроме того, я использую Slim 3 около 4 месяцев, и это абсолютное удовольствие. Это дает вам отправную точку, и вы можете сделать свое приложение как сложным, так и оставить его простым, привязанным только к самому базовому шаблону современной веб-разработки. - person charmeleon; 15.07.2016