问题标签 [silex]
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.
php - ApacheBench 很慢
我使用 Slim 和 Silex 微框架创建了两个基准页面,然后测试了它们的速度。
Chrome 开发者工具结果:
超薄:7ms
硅橡胶:16ms
ApacheBench 结果:
我不明白是什么让ab
Slim 变得如此缓慢。关于这个问题的任何想法?
PS 如您所见,在浏览器中请求页面没有问题。此外,它的速度很快curl
。
php - 在 Silex 项目中使用 ProcessBuilder
我想使用 Symfony\Component\Process\ProcessBuilder 类,并且可以看到它作为 Silex 代码库的一部分包含在供应商文件夹中。我正在使用 Silex phar 文件并假设因为我可以很容易地实例化其他 Symfony 组件,如请求、响应等,所以当我使用完整的命名空间时,它将正确定位要包含的文件。
但是,当我尝试使用以下方法创建它的实例时:
它给了我一个找不到类的错误。有谁知道为什么会这样,以及如何在 Silex phar 中使用这个类而不在我的项目中单独包含组件?
php - 无翻译的 Silex 表单验证
我想使用 Silex 的服务提供商来构建一个简单的带有验证的联系表单,但它似乎只适用于翻译服务提供商,因为当我渲染视图时,我有一个 Twig_Error_Syntax '过滤器“trans”不存在',我猜是因为我必须自定义(覆盖)'form_div_layout.html.twig' 并删除反式过滤器?我不需要翻译。
我还没有实现验证。
这是我的代码:
并在联系页面中:
php - 使用 Silex 的 Twig addFilter?
使用 Silex 时将自定义过滤器连接到 Twig 的正确方法是什么,但保持现有的twig.options
完整?
这就是我的意思。我有以下代码:
如果我按原样运行该代码,则过滤器不起作用。
相反,Twig 返回 PREVIOUS REQUEST 的无限缓存版本(即使我清除了缓存内容 - 我猜这是因为缓存被存储在其他地方,因为我正在覆盖twig.options
......不确定)。
但是,如果我放弃以下行:
...然后一切正常。
我怎样才能让两个人玩得很好?即保留缓存并添加自定义过滤器?
谢谢!
php - 会话在 Silex\App 中不起作用
无论出于何种原因,Sessions 在我的 Silex 应用程序中都不起作用。我将 php.ini 中的 error_reporting 设置为E_ALL | E_STRICT
并显示和记录错误。那里没什么可看的。但由于某种原因,没有创建会话,也没有文件/project-root/tmp/sessions/
(使用默认 session.save_path 时也没有)。切换到 PdoSessionStorage 以排除文件系统上的读/写权限问题,也没有带来任何结果。我也尝试在 之间切换$app['session']
,$request->getSession()
但$app['request']->getSession()
无济于事。
我不知道在哪里寻找问题......
这是我写的一个非常简单的测试应用程序(use
为了节省空间省略了)。基本上,这个测试显示了我试图在我的实际应用程序中实现的目标。我想在会话中存储一个数组。在$app->before()
我检查该值是否已设置,然后将其传递给要显示的树枝,例如登录信息You are logged in as {{ user.name }}
::
sessiontest.twig 看起来像这样:
去 / 什么都不显示,去 /test 时只显示“get:test”(但没有实际存储,因为之前既不返回 / 也不刷新触发器)。
http - Silex:将新请求返回到另一条路线?
我正在尝试使用 Silex 构建一个 Web 应用程序。对于我的一些路线,我希望结果是对另一条路线的新请求。
在我看来,这应该是一个非常标准的用例,但我找不到任何简单的方法来做到这一点。我知道,redirect
但我不只是想重定向,因为我不想使用在第一个函数中创建的一组新的 post 参数。
我对 Silex/Symfony 和 HTTP 都很陌生,所以我想知道我是否遗漏了一些重要的东西?
编辑:我可能会补充一点,我一直在考虑修改当前的 Request 对象并用我自己的参数替换帖子数据,然后进行重定向,但 Request 类中似乎没有任何支持。
forms - 在使用 Silex 的表单上禁用 CSRF 保护
我目前正在将 Silex 用于一个小项目。我已经以这种方式注册了表单服务:
并使用创建一个表单$form = $app['form.factory']->createBuilder('form');
我需要在 html 电子邮件中嵌入表单,但 CSRF 保护不允许我直接回答电子邮件中的表单。
如何为这种特殊形式或所有其他形式禁用保护(我知道如何在 Symfony2 中做到这一点,但在 Silex 中不知道......)
非常感谢你的回答!
exception - Silex:特定异常类型的错误处理程序
在 Silex 中是否可以根据抛出的异常使用错误处理程序?
我知道这可以通过单个异常处理程序和引发异常的类名的 switch 语句来实现,但对我来说,“Silex 方式”似乎更干净,但不起作用。
这就是我期望它的工作方式
问题是,当我在控制器中抛出 ResourceNotFound 异常时,会执行与 AccessDenied 相关的错误处理程序
可捕获的致命错误:传递给 {closure}() 的参数 1 必须是 App\Rest\Exception\AccessDenied 的实例,给出的 App\Rest\Exception\ResourceNotFound 的实例
这是否可以通过另一种方式实现,或者我应该将所有与通用异常一起使用的处理程序中的所有内容都填充并打开抛出的异常类型?
PS:我知道该$app->abort()
方法,但更喜欢处理异常
php - 使用 Symfony\Component\DependencyInjection 配置带有路径的 Silex 应用程序
我目前正在重构一个Silex\Application
比最初预期更大的。作为这项工作的一部分,我将服务定义从源移动到 services.yml 中,然后只调用 a Symfony\Component\DependencyInjection\ContainerBuilder
。代码如下所示:
考虑以下代码行,它是创建的一部分Doctrine\ORM\EntityManager
:
在我的 services.yml 中看起来像这样:
最后,我的问题。我想将键和值传递给容器构建器,我可以像参数一样访问它,例如,而不是[src/Project/Entity]
作为 Doctrine-Setup 的第一个参数,我想做这样的事情:[%ROOT_PATH%/src/Project/Entity]
,其中%ROOT_PATH%
添加到 ContainerBuilder 有点像这样$container->???('ROOT_PATH', dirname(__DIR__))
.
我在文档中没有找到类似的东西。我将通读 ContainerBuilder.php 以查看是否可以找到某些内容,但我不确定术语,例如%OOT_PATH%
在我的场景中是否是变量、定义、别名......