问题标签 [slim-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2252 浏览

php - Slim 3:什么是 HTTP 缓存?

HTTP 缓存有什么用?如何在 Slim 3 中使用它?

但我不太确定如何在 Slim 3 中做到这一点

有任何想法吗?

0 投票
2 回答
863 浏览

php - Slim 3:如何创建缓存页面?

例如,我知道如何使用普通 php 创建缓存页面,

但是如何在 Slim 3 或其他微框架中做到这一点?

有任何想法吗?

0 投票
5 回答
13967 浏览

php - Slim 3 在中间件中获取当前路由

我想在中间件类中获取当前 I 路由的名称。以前(在 Slim 2.* 中)您可以像这样获取当前路线:

$route = $this->app->router->getCurrentRoute();

但是这个功能在 Slim 3.0 版本中已经被去掉了。我在__invoke方法中找到了以下代码Slim\App

这表明当前路线作为属性存储routeInfoRequest. 但似乎我的自定义中间件类是在设置属性之前调用的(通过$this->dispatchRouterAndPrepareRoute($request, $router);方法)。因为调用$request->getAttribute('routeInfo')解析为NULL.

所以我的问题是;如何从中间件函数/类中获取当前路由(或路由名称)?

或者我应该只复制上面的代码Slim\App吗?

0 投票
5 回答
18488 浏览

php - PHP Slim 框架创建控制器

我正在使用 Slim 框架创建一个 API。目前我使用单个文件来创建路由并将闭包传递给它:

但我意识到我的文件增长迅速。我想做的是改用控制器,所以我将有一个控制器类,只需将实例/静态方法传递给路由,如下所示

然后将函数传递给路由

我试过这个,但它不起作用,我想知道是否有一种方法可以使用它来管理我的文件。

0 投票
1 回答
244 浏览

php - How to view files sent through x-sendfile as GET response

I am using Slim Framework 3. Here's my code:

When using through postman, I see the image. But, how do I show the image / video / audio on an html page using the response?

0 投票
2 回答
13276 浏览

php - 如何在 Slim v3 的中间件类中访问 $container?

我一直在读到在 Slim v2 中,$app 被绑定到中间件类。我发现在 v3 中不是这种情况?下面是我的中间件类,但我只是变得不确定:

在中间件中访问 DI 容器的正确方法是什么?我猜应该有办法吗?

0 投票
3 回答
3712 浏览

php - 在 Slim3 控制器的类构造函数中访问当前路由名称

使用 Slim,我将我的控制器分组,并且通常为每个组扩展一个抽象的 BaseController。我使用基于类的路由:

并且需要密码保护某些路由,有时我需要稍微不同的配置。BaseApiController、BaseAdminController... 等等。有时我需要知道我在哪条路由中,以便我可以针对该路由执行某种行为。在那些情况下,我会有一个像这样的辅助函数:

这会给我当前正在使用的路线名称。所以我可以做类似的事情......

我找不到访问正在执行的路由名称的方法。我找到了这个链接

Slim 3 在中间件中获取当前路由

但是当我尝试时我得到 NULL

我也尝试过建议的:

我检查了每个 Slim3 对象的属性和方法,我似乎找不到 Slim3 的等价物,或者无法访问命名路由。看起来 Slim3 甚至没有跟踪它执行的路线,它只是......执行它。

这些是路由器类具有的以下方法,我怀疑这个值会在哪里:

我希望有人做过类似的事情。当然,还有其他一些我可以做到这一点的 hacky 方法(一些我现在已经在考虑),但我更喜欢使用 Slim 来给我这些数据。有任何想法吗?

注意:我知道您可以使用中间件执行此操作,但是我正在寻找不需要中间件的解决方案。我可以在触发路由实例化的类中使用的东西。Slim2 是可能的,希望 Slim3 有类似的功能。

0 投票
1 回答
4472 浏览

slim - 具有相同签名的多个 Slim 路由

我们正在考虑使用 Slim 3 作为我们 API 的框架。我搜索了 SO 和 Slim 文档,但找不到问题的答案。如果我们有不同的路由文件(例如 v1、v2 等)并且如果两个路由具有相同的签名,则会引发错误。有没有办法级联路由,以便使用特定签名的最后加载路由?

例如,假设 v1.php 有一个路由,GET ("/test")而 v2.php 也包含这个路由,我们可以使用最新版本吗?更简单的是,如果一个路由文件包含两个具有相同签名的路由,是否可以使用后一种方法(并且不会引发错误)?

此处提出了类似的问题,但这使用了钩子(根据此处已从 Slim 3 中删除)

0 投票
1 回答
1502 浏览

php - 在路由中获取参数 - Slim Framework 3

在这种情况下如何获得参数?

提前致谢。

更新

在我的情况下的解决方案:

0 投票
1 回答
489 浏览

php - SwiftMailer 的 setFrom 不使用变量

我正在尝试通过 swiftmailer 和 gmail 在本地发送联系表格的邮件。我检查了每一行,我知道问题是 'setFrom' 。

});

如您所见,我也使用 Slim 3 框架。当我运行代码时,出现此错误:

Slim 应用程序错误 发生网站错误。对暂时的不便深表歉意。

但是,如果我用$cleanEmail代码替换'x@y.z'!我应该怎么办?我知道通过使用 gmail 我无法更改发件人姓名,但我想将此代码上传到虚拟主机中,并且我不想在那里遇到此问题。

任何人都可以建议在 Slim 3 中重定向的更好方法吗?而不是这两行:

我已经为我的路线设置了这样的名称:

多谢!