问题标签 [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 - 如何区分 PHP 与 Silex 和 Symfony2?
所以,首先,总的来说,我对编程真的有点陌生(我是一名 CS 学生实习生)。
我的任务是从config.php
文件中删除一些 Symfony2 和 Silex。显然,我们的网站不需要这两个框架来工作(它们曾经是必需的,但现在我们正在对网站在服务器上的方式进行一些更改)。
最大的问题是我刚开始学习PHP。我过去的大部分工作都是在 Java 中完成的。老实说,我以前什至没有使用过框架,所以我什至不知道 Symfony2 和 Silex 到底负责什么。
有什么我可以走的捷径(要寻找的东西)或资源来帮助我吗?
我只需要删除任何与 Silex/Symfony 相关的内容。我觉得学习所有关于框架的知识会过于耗时。你们有什么感想?
json - Silex & phpunit JSON 响应
我正在尝试使用 phpunit 为 Silex 编写一些测试。
我有一个生成 Crawler 对象的类 Symfony\Component\BrowserKit\Client。
该对象期望客户端的结果是 xhtml,但是我尝试测试的我的 api 返回 JSON,并且爬虫不允许这样做。
Silex 或 phpunit 中是否有内置类可以与 JSON 一起使用,还是我必须自己动手?
干杯
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,但没有任何区别。
那么我的模型数据有什么问题 -> 到 -> 表单数据转换?
phpunit - Silex phpunit不匹配路由
我正在尝试为我的 Silex 应用程序编写一些测试,但遇到了问题。
我有以下 phpunit.xml 文件
引导代码是
我的第一个测试文件如下
我的第二个是
问题是,如果我单独运行测试,它们都会通过。
如果我将它们作为测试套件的一部分运行,则会引发异常
我尝试编写测试的方式有什么明显错误吗?
干杯
php - 仅在生产服务器上找不到类错误
我正在使用 Silex 开展一个项目。在一个特定的文件中,我添加了一条use
语句,让自动加载器包含一个特定的 php 文件。稍后在文件中,我使用该类。开发服务器上一切正常,但是当我进入生产环境时,我收到一条Fatal error: Class not found
消息。编辑:两台服务器现在都使用 PHP 5.4.4。
是否有任何类型的安装特定问题可能导致此问题?我可以确认 composer 生成的两个命名空间自动加载文件是相同的。
只是为了彻底起见,这里是 include 语句:
下面是后面代码中类的使用:
这是确切的错误:
更新:我应该补充一点,在我正在处理的相当大的代码库中,我在其他任何地方都没有遇到过这样的错误,所以我知道这并不像所有命名空间都不起作用那么简单。
php - 在 Twig 视图中访问“点”命名空间服务
我知道我可以通过在 Twig 模板(示例app.request.host
)中使用点符号来访问已注册的服务。但是,如果我创建了自己的命名空间服务(在本例中tagframe.photoservice
),当我尝试访问它时,我会收到一个错误,即对象“Silex\Application”上不存在方法“tagframe”。是否可以访问已命名空间的服务?换句话说,我通常会在控制器中使用 $app['tagframe.photoservice'] 访问的服务?
symfony - 我正在尝试对 Silex 应用程序进行单元测试,但找不到 Silex\WebTestCase 命名空间
我安装了 phpunit 3.6.12 和 Silex。在我的应用程序的根目录中,我有测试目录,其中包含简单的测试文件 BlogFunctionTest.php
当我从命令行运行 phpunit 时出现错误
这是指我尝试扩展 WebTestCase 的行。如果我更换也会发生同样的情况
和
Silex 相对于我的测试文件安装在
非常感谢任何提示,谢谢!
php - 如何从 Silex 中的表单数据中过滤 html
我对 Silex 和 Symfony 还很陌生,我正在尝试使用 symfony Form 组件创建一个表单。效果很好,但是在验证/清理方面我不知道该怎么做。
我当然知道 $app->escape($data) 方法,但它似乎不适合我的需要。
在调用 $form->isValid() 方法之前,我想从提交的数据中转义 html 标记。我不想使带有 html 标签的文本无效,只需从文本中转义/删除它们,然后验证获得的值。
所以基本上我想将转义值提供给表单而不是原始值或使用。
我的问题是,只有在删除 html 标签后提交的文本为空时,我才想显示错误消息。
我想写一个自定义约束——因为我在包中没有找到任何关于 html 验证的信息——但在那种情况下,我必须过滤/转义两次,首先是在验证中,然后是在保存数据之前。
我想实现这样的目标:
谢谢。
php - 使用 Symfony 验证器验证匹配和唯一性
我将 Silex 用于一个小型项目,但我不确定如何验证两个匹配的密码字段,也不确定如何使用数据库连接检查电子邮件的唯一性。我无法在 SF2 文档中弄清楚。
可能有人可以给我一个提示或样本吗?
提前致谢
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
具体来说,第 262 行。注释掉那一行可以让我的测试正常工作并且全部通过绿色。
我已经进行了很多搜索以使其正常工作,但没有任何运气。我认为这是因为 flashBag 的东西是新的(https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Session/Session.php#L305)并且旧方法正在被弃用。
任何关于让我的单元测试工作的建议都会很棒。