我正在使用yml格式来翻译我的网络应用程序,但我遇到了一个问题.
我想做什么:
#exception.en.yml
exception.bad: 'Bad credentials'
Run Code Online (Sandbox Code Playgroud)
我所知道的可能是:
#exception.en.yml
'Bad credentials': 'Bad credentials'
Run Code Online (Sandbox Code Playgroud)
这是翻译异常的唯一方法吗?
我正在使用Symfony 2.5和Doctrine开展小项目.我的查询完全在MySQL Workbench中运行.不幸的是,在我的查询构建器中使用括号时,我在下面会收到错误:
QueryException:[语法错误]第0行,第19列:错误:预期的Doctrine\ORM\Query\Lexer :: T_CLOSE_PARENTHESIS,得到'>'
$grades = $qb
->select(array(
'SUM(g.final > 89.5) as a',
'CONCAT (gcs.number, gcs.letter) as class'
))
->from('FicusEschoolBundle:Grade', 'g')
->leftJoin('g.course', 'gc')
->leftJoin('gc.schoolclass', 'gcs')
->where($qb->expr()->eq('gc.subject', $rid))
->andWhere($qb->expr()->in('g.quarter', $filterQuarter))
->groupBy('gc')
->orderBy('gcs.number')
->getQuery()
->getArrayResult();
Run Code Online (Sandbox Code Playgroud)我一直在对我的Symfony2应用程序进行负载测试,我发现的其中一个瓶颈似乎是Memcached.
我在webserver上使用memcached来缓存doctrine元数据和查询,我正在使用amazon的elasticache memcached作为doctrine的结果缓存.
在没有任何负载的请求下,我的端到端时间是300-350ms,memcached占这些ms中的大约10个

但是,在25个并发请求的负载下,我的总响应速度减慢到大约2500毫秒,其中很大一部分似乎是memcached

39个memcached查询中有34个获取classmetadata,其中一些是.1ms而其他的是40或50ms,它似乎很随机.
我已经尝试在本地memcache配置文件中增加最大连接数和缓存大小,我还能做些什么来尝试从我的应用程序中删除这个瓶颈?
谢谢一堆 -
我有清除从超类扩展的所有验证约束的问题.以下是我的代码
user.php的
* @var string
* @ORM\Column(type="text", unique=true)
* @Assert\NotBlank()
* @Assert\NotNull()
* @AdminAssert\MyCustomValidation
*/
protected $phoneNumber;
Run Code Online (Sandbox Code Playgroud)
在Admin.php中,我编写了类似下面的代码
class Admin扩展用户
* @var string
* @ORM\Column(type="text", unique=true)
*/
protected $phoneNumber;
Run Code Online (Sandbox Code Playgroud)
我想删除所有验证约束但不能删除它.
我正在使用 Symfony 框架并打算将自动文档引擎添加到我的项目的 RESTful api 中。
经过一番搜索,我找到了 apidoc 引擎(http://apidocjs.com/)。它的工作原理非常简单:您必须为 RESTful api 的每个控制器添加一些注释,并且将生成文档。
注解的例子是:
/**
* @Route("/api/dictionary_list/{userId}/{sessionKey}", name="api/dictionary_list")
* @api {get} /api/dictionary_list/{userId}/{sessionKey} 01. Values list (ids) for all system dictionaries
* @apiName Dictionary list
* @apiGroup Dictionary
*
* @apiParam {Integer} userId User's ID received in authorization request
* @apiParam {String} sessionKey Session key received in authorization request
*
* @apiSuccess {Integer} parcelStatuses The name of current dictionary
* @apiSuccess {String} itemId Item id which used in requests
* …Run Code Online (Sandbox Code Playgroud) 我在为基于JSON API的应用程序创建复杂测试时寻求帮助。
简短的问题场景:
我们尝试使用ClockMock,但它仅适用于名为/用于命名空间的类。我们的方法在其他名称空间,实体在下一个创建。
我们正在寻找一种解决方案,该方法如何临时重写PHP平台\ DateTime类-或一种技术,如何对项目中的所有名称空间/类使用ClockMock(但仅用于测试)。我们试图修改基于Symfony的ClockMock-但找不到好方法:-/。
有什么办法吗?(我不想使用类似get_declared_class()之类的东西,并用它调用clockMock :: register-因为它对于大约15.000个测试:-/非常缓慢。
谢谢大家!
我有一个 SF3 应用程序和很多功能测试。在每次测试之前,我们加载并清除所有夹具。所有测试的时间都那么长。我想只加载一次夹具,并在上次测试后截断。
这是提高功能测试速度的好方法吗?
phpunit 中是否有一种 php 方法,它在所有测试之前只启动一次?(因为setUpBeforeClass 是在每次测试之前执行的)
我的测试类中的 setUpBeforeClass 方法示例。
class SearchRegisterControllerTest extends WebTestCase
{
/** @var Client $client */
private $client;
protected static $application;
public static function setUpBeforeClass()
{
$kernel = static::createKernel();
$kernel->boot();
$em = $kernel->getContainer()->get('doctrine.orm.entity_manager');
$schemaTool = new SchemaTool($em);
$metadata = $em->getMetadataFactory()->getAllMetadata();
$schemaTool->dropSchema($metadata);
$schemaTool->createSchema($metadata);
/** @var Client $client */
$client = static::createClient();
$em = $client->getContainer()->get('doctrine.orm.entity_manager');
$loader = new Loader();
$loader->loadFromDirectory('src/MyNameSpace/AppBundle/DataFixtures/ORM');
$purger = new ORMPurger();
$executor = new ORMExecutor($em, $purger);
$executor->execute($loader->getFixtures(), true);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我有indexAction和contactAction
contactAction是一个简单的表单,没有映射字段(FormType),如下所示:
/**
* @Route("/contact", name="contact")
* @Template()
* @param Request $request
* @return array
*/
public function contactAction(Request $request)
{
$form = $this->createForm(new ContactType());
$form->handleRequest($request);
if ($form->isValid()) {
$firstName = $form->get('first_name')->getData();
$lastName = $form->get('last_name')->getData();
$email = $form->get('email')->getData();
$message = $form->get('message')->getData();
}
return array(
'form' => $form->createView()
);
}
Run Code Online (Sandbox Code Playgroud)
我用这个TWIG命令在我的indexAction中渲染这个表单:
{{ render(controller('RusselBundle:Default:contact')) }}
Run Code Online (Sandbox Code Playgroud)
一切都很好,如果页面没有重新加载,HTML5验证器工作正常,但如果表单有一些错误,如:firstName长度,错误根本不显示,我该怎么办,以便错误出现在indexAction形式?任何帮助,将不胜感激.我只是好奇它是可能的,如果 - 如何?对不起我的英语不好....
如何使用twig中的get参数渲染控制器?
{{ render(controller('AutoBundle:MyController:main', { 'id': id, 'active': true } )) }}
Run Code Online (Sandbox Code Playgroud)
我想从我的twig扩展(过滤器,函数...)访问Twig模板参数,而不显式传递它.
我总是需要在所有树枝扩展中使用"displayPreferences"变量,以便更改显示和转换值的方式.
可以将此变量作为模板参数传递,并将其作为我运行的每个Twig过滤器/函数的参数传递,但这会使模板难以阅读.
这样的事情会很棒:
/**
* Twig filter (render a date using the user defined format)
*
* @param Date $date
*/
public function renderUserDate ($date) {
// Somehow, get a template parameter, without receiving it as argument
$renderPreference = $this->accessTemplateParameter('displayPreferences');
switch ($renderPreference['dateFormat']) {
// Do something
}
}
Run Code Online (Sandbox Code Playgroud) symfony ×10
php ×7
doctrine-orm ×4
twig ×4
phpunit ×2
annotations ×1
api-doc ×1
caching ×1
fixtures ×1
forms ×1
function ×1
memcached ×1
mocking ×1
mysql ×1
performance ×1
sum ×1
templates ×1
unit-testing ×1
yaml ×1