urS*_*Sus 1 middleware routes slim
我是Slim Framework和PHP的新手.我无法使用它,如果我使用普通函数并使用"foo"作为参数,它可以工作,但不会像这样工作,即使文档使用几乎相同的东西http://docs.slimframework.com /
<?php
require 'Slim/Slim.php';
session_start();
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$foo = function() {
global $app;
if(!isset($_SESSION["user_id"])) {
$app->redirect("/redirecto/login");
} else {
echo "Authenticated";
}
}
$app->get("/", $foo, function() {
global $app;
$app->render('index.php');
});
$app->get("/login", function() use ($app) {
$app->render("login.php");
});
?>
Run Code Online (Sandbox Code Playgroud)
错误是
Parse error: syntax error, unexpected '$app' (T_VARIABLE) in C:\xampp\htdocs\redirecto\index.php on line 41
Run Code Online (Sandbox Code Playgroud)
($ app-> get("/",$ foo,function(){line)
小智 5
我想我在这里要说的第一件事就是尽量避免将Slim实例称为全局.
从文档我们实际上调用Slim getInstance方法来获取当前Slim实例的副本.我将重写下面的代码,查看文档并查看有关nettuts的一些教程,因为它们有所帮助.
<?php
require 'Slim/Slim.php';
session_start();
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$foo = function() {
$app = \Slim\Slim::getInstance();
if(!isset($_SESSION["user_id"])) {
$app->redirect("/redirecto/login");
} else {
echo "Authenticated";
}
}
$app->get("/", $foo, function() use ($app) {
$app->render('index.php');
});
$app->get("/login", function() use ($app) {
$app->render("login.php");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2981 次 |
| 最近记录: |