【问题标题】:How do I troubleshoot a Silex application?如何对 Silex 应用程序进行故障排除?
【发布时间】:2015-07-12 23:43:59
【问题描述】:

我正在尝试做我认为最基本的事情,但这需要太多时间。我只是希望我的索引文件指向或转发到另一个文件。我最初是用一个简单的衬里来做这个的。

require_once getcwd() . "/web/source/index.php";

一旦我迁移到 Silex,我就尝试了这个:

$app->get('/', function($path) use($app) {
    return $app->sendFile('/web/source/index.php');
});

但没有成功。

当我访问我的网站时,我收到一个非常描述性的“哎呀,出了点问题”。我该如何解决这个问题?

这是包含所有样板的完整代码:

require_once __DIR__ . '/vendor/autoload.php';
$app = new Silex\Application();
$app->get('/{name}', function($name) use($app) { 
    // this works fine
    return ' test: '. $app->escape($name);
});

$app->get('/', function($path) use($app) {
    // this does not
    return $app->sendFile('/web/source/index.php');
});

$app->run();

这里是docs I'm using

【问题讨论】:

  • 嗯....你可以为初学者打开调试。
  • $app['debug'] = true; - 起来了
  • 我假设你在某个地方有一个.env 文件,如果你这样做了,它可能有另一个设置会覆盖$app['debug'] = true; 一个。
  • 调试已开启并正常工作。我不得不取出 $path 变量,现在我得到一个新错误 - 找不到路径。
  • getcwd() 需要权限才能实际工作,因此,它可能不会为您提供完整的路径。尽管在您使用它的上下文中我看不到它的必要性。一些$_SERVER 的东西也应该可以正常工作。

标签: php silex


【解决方案1】:

通过$app['debug'] = true;打开调试。

如果您有一个.env 文件,还要确保它没有覆盖您的默认设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多