问题标签 [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.

0 投票
3 回答
284 浏览

php - 如何区分 PHP 与 Silex 和 Symfony2?

所以,首先,总的来说,我对编程真的有点陌生(我是一名 CS 学生实习生)。

我的任务是从config.php文件中删除一些 Symfony2 和 Silex。显然,我们的网站不需要这两个框架来工作(它们曾经是必需的,但现在我们正在对网站在服务器上的方式进行一些更改)。

最大的问题是我刚开始学习PHP。我过去的大部分工作都是在 Java 中完成的。老实说,我以前什至没有使用过框架,所以我什至不知道 Symfony2 和 Silex 到底负责什么。

有什么我可以走的捷径(要寻找的东西)或资源来帮助我吗?

我只需要删除任何与 Silex/Symfony 相关的内容。我觉得学习所有关于框架的知识会过于耗时。你们有什么感想?

0 投票
2 回答
3915 浏览

json - Silex & phpunit JSON 响应

我正在尝试使用 phpunit 为 Silex 编写一些测试。

我有一个生成 Crawler 对象的类 Symfony\Component\BrowserKit\Client。

该对象期望客户端的结果是 xhtml,但是我尝试测试的我的 api 返回 JSON,并且爬虫不允许这样做。

Silex 或 phpunit 中是否有内置类可以与 JSON 一起使用,还是我必须自己动手?

干杯

0 投票
2 回答
4327 浏览

symfony - 我的转换器不工作(从模型数据到表单数据)

我正在构建一个 silex 应用程序(源代码在这里
App\Form\DataTransformer我有一个 MetadataTransformer 类。
但是该transform方法不起作用(反向变换起作用)。
它应用于一个App\Form\Metadata AbstractType,它是一个集合的一部分App\Form\ArticleForm AbstractType
最后一个表单在我的编辑方法中调用App\Controller\Admin\ArticleAdminController

数据转换器应该像这样映射数据

进入“表单数据”,如:

所以它可以显示为一个集合。

元数据.php

ArticleForm.php

我的数据转换器应如下所示:

元数据转换器.php

reverseTransform 有效,但变换本身似乎没有。
这里的目标是能够在表单中显示动态集合(在我的文章表单页面中动态添加和删除元数据)

在 repo 中,我添加更改代码以使其工作(即在控制器 ArticleAdminController 中转换数据,而不是在 Transformer 中进行)
如果我在运行时记录转换的结果,结果是我所期望的,但是表单不会使用它。

我已经尝试了 addViewTransformer / addModelTransformer 2.1 api,但没有任何区别。

那么我的模型数据有什么问题 -> 到 -> 表单数据转换?

0 投票
1 回答
813 浏览

phpunit - Silex phpunit不匹配路由

我正在尝试为我的 Silex 应用程序编写一些测试,但遇到了问题。

我有以下 phpunit.xml 文件

引导代码是

我的第一个测试文件如下

我的第二个是

问题是,如果我单独运行测试,它们都会通过。

如果我将它们作为测试套件的一部分运行,则会引发异常

我尝试编写测试的方式有什么明显错误吗?

干杯

0 投票
2 回答
2244 浏览

php - 仅在生产服务器上找不到类错误

我正在使用 Silex 开展一个项目。在一个特定的文件中,我添加了一条use语句,让自动加载器包含一个特定的 php 文件。稍后在文件中,我使用该类。开发服务器上一切正常,但是当我进入生产环境时,我收到一条Fatal error: Class not found消息。编辑:两台服务器现在都使用 PHP 5.4.4。

是否有任何类型的安装特定问题可能导致此问题?我可以确认 composer 生成的两个命名空间自动加载文件是相同的。

只是为了彻底起见,这里是 include 语句:

下面是后面代码中类的使用:

这是确切的错误:

更新:我应该补充一点,在我正在处理的相当大的代码库中,我在其他任何地方都没有遇到过这样的错误,所以我知道这并不像所有命名空间都不起作用那么简单。

0 投票
1 回答
543 浏览

php - 在 Twig 视图中访问“点”命名空间服务

我知道我可以通过在 Twig 模板(示例app.request.host)中使用点符号来访问已注册的服务。但是,如果我创建了自己的命名空间服务(在本例中tagframe.photoservice),当我尝试访问它时,我会收到一个错误,即对象“Silex\Application”上不存在方法“tagframe”。是否可以访问已命名空间的服务?换句话说,我通常会在控制器中使用 $app['tagframe.photoservice'] 访问的服务?

0 投票
1 回答
3165 浏览

symfony - 我正在尝试对 Silex 应用程序进行单元测试,但找不到 Silex\WebTestCase 命名空间

我安装了 phpunit 3.6.12 和 Silex。在我的应用程序的根目录中,我有测试目录,其中包含简单的测试文件 BlogFunctionTest.php

当我从命令行运行 phpunit 时出现错误

这是指我尝试扩展 WebTestCase 的行。如果我更换也会发生同样的情况

Silex 相对于我的测试文件安装在

非常感谢任何提示,谢谢!

0 投票
2 回答
1869 浏览

php - 如何从 Silex 中的表单数据中过滤 html

我对 Silex 和 Symfony 还很陌生,我正在尝试使用 symfony Form 组件创建一个表单。效果很好,但是在验证/清理方面我不知道该怎么做。

我当然知道 $app->escape($data) 方法,但它似乎不适合我的需要。

在调用 $form->isValid() 方法之前,我想从提交的数据中转义 html 标记。我不想使带有 html 标签的文本无效,只需从文本中转义/删除它们,然后验证获得的值。

所以基本上我想将转义值提供给表单而不是原始值或使用。

我的问题是,只有在删除 html 标签后提交的文本为空时,我才想显示错误消息。

我想写一个自定义约束——因为我在包中没有找到任何关于 html 验证的信息——但在那种情况下,我必须过滤/转义两次,首先是在验证中,然后是在保存数据之前。

我想实现这样的目标:

谢谢。

0 投票
1 回答
2617 浏览

php - 使用 Symfony 验证器验证匹配和唯一性

我将 Silex 用于一个小型项目,但我不确定如何验证两个匹配的密码字段,也不确定如何使用数据库连接检查电子邮件的唯一性。我无法在 SF2 文档中弄清楚。

可能有人可以给我一个提示或样本吗?

提前致谢

0 投票
3 回答
3289 浏览

symfony - 使用 Symfony 的 flashBag 会话进行单元测试

我正在使用单元测试在 Silex 中创建一个应用程序。

对常规会话处理程序运行单元测试可以正常工作:

并在我的单元测试中设置这个标志:

如果我没有设置 session.test 标志,我的单元测试会抛出一个 headers already sent 错误并且全部失败。有了它,我的测试运行良好。

问题是我正在尝试使用 flashBag 功能(会话信息只持续到第一个请求然后被删除):

flashBag 似乎不尊重 session.test 标志,并尝试发送标头,这导致我所有的单元测试都失败:

24) Yumilicious\UnitTests\Validator\PersonAccountTest::setConstraintsPassesWithMinimumAttributes RuntimeException: 无法启动会话,因为标头已经发送。

/webroot/yumilicious/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php:142 /webroot/yumilicious/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage /NativeSessionStorage.php:262 /webroot/yumilicious/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Session.php:240 /webroot/yumilicious/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation /Session/Session.php:250 /webroot/yumilicious/src/app.php:38 /webroot/yumilicious/tests/Yumilicious/UnitTests/Base.php:13 /webroot/yumilicious/vendor/silex/silex/src/Silex /WebTestCase.php:34 /webroot/yumilicious/vendor/EHER/PHPUnit/src/phpunit/phpunit.php:46 /webroot/yumilicious/vendor/EHER/PHPUnit/bin/phpunit:5

我已经把它缩小到这段代码:https ://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php#L259

具体来说,第 262 行。注释掉那一行可以让我的测试正常工作并且全部通过绿色。

我已经进行了很多搜索以使其正常工作,但没有任何运气。我认为这是因为 flashBag 的东西是新的(https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Session/Session.php#L305)并且旧方法正在被弃用。

任何关于让我的单元测试工作的建议都会很棒。