我使用symfony2和FosUserBundle作为用户管理器.我想显示所有用户.我已经尝试了下面的代码,但它返回一个空白页面.
我该如何解决?
控制器:
<?php
namespace Annuaire\AdminBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class AdminController extends Controller {
public function indexAction() {
return $this->render('AnnuaireAdminBundle:Admin:index.html.twig');
}
//get all users
public function usersAction() {
//access user manager services
$userManager = $container->get('fos_user.user_manager');
$users = $userManager->findUsers();
return $this->render('AnnuaireAdminBundle:Admin:users.html.twig', array('users' => $users));
}
}
Run Code Online (Sandbox Code Playgroud)
树枝:
<h1>get all users</h1>
{% for user in users %}
<li>{{ user.username|e }}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 我的问题相对简单,
我有gitlab设置,gitlab CI和两个独立的服务器,每个都有自己的跑步者.两个跑步者都在工作,可以成功执行构建.
我现在想要实现的是让两个跑步者都建立一个项目,即使是单独的命令也是如此.这最后一件事似乎不可能,但是如果我将两个跑步者添加到一个项目中,它似乎只是建立在其中一个而不是另一个上.
有可能让它在两者上构建,甚至可能改变脚本吗?
在现实世界中的脚本通常被用来调用诸如实用程序find,tar,cpio,grep,sed,rsync,date等含有很多选择一些比较复杂的命令行.有时构造和使用正则表达式或通配符模式.
一个例子:这通常是由cron中定期调用的shell脚本必须从一台计算机的一些巨大的目录树镜像到另一个使用该实用程序的任务rsync的.应该从镜像过程中排除几种类型的文件和目录:
#!/usr/bin/env bash
...
function mirror() {
...
COMMAND="rsync -aH$VERBOSE$DRY $PROGRESS $DELETE $OTHER_OPTIONS \
$EXCLUDE_OPTIONS $SOURCE_HOST:$DIRECTORY $TARGET"
...
if eval $COMMAND
then ...
else ...
fi
...
}
...
Run Code Online (Sandbox Code Playgroud)
正如Michael Feathers在其着名的书"有效地使用遗留代码"中所写,一个好的单元测试运行得非常快,并且不会触及网络,文件系统或打开任何数据库.
根据Michael Feathers的建议,这里使用的技术是:依赖注入.这里要替换的对象是实用程序rsync.
我的第一个想法:在我的shell脚本测试框架(我使用bats)中,我操作$PATH的方式是找到一个模型 rsync而不是真正的rsync实用程序.此模型对象可以检查提供的命令行参数和选项.与此测试脚本部分中使用的其他实用程序类似.
我之前在脚本编写方面遇到实际问题的经验通常是由文件或目录名中的特殊字符引起的错误,引用或编码问题,ssh密钥丢失,权限错误等等.这种类型的错误将逃脱这种单元测试技术.(我知道:对于其中一些问题,单元测试根本不是治愈方法).
另一个缺点是为复杂的实用程序编写一个类似的模型 …
我已将 DOT 代码文件保存为 utf-8 编码。但它不能输出自定义形状的 png 图像文件。是否有示例来演示用户指定的字符集使用 graphviz?
演示代码在这里。
digraph G {
bgcolor=black;
edge [arrowsize=1, color=red];
node [penwidth=1, color=white, labelloc=b];
BR [shape=box, label="BR", charset="utf-8", image="??.png"];
DS [shape=plaintext, fontname="SimSun", fontcolor=white, fontsize=18, label="??"];
BR -> DS[dir=forward];
}
Run Code Online (Sandbox Code Playgroud)
命令行的结果如下所示。
C:\dot>dot -Gcharset=utf-8 -Tpng -o demo.png demo.dot
Warning: No such file or directory while opening ???.png
Warning: No or improper image="???.png" for node "BR"
Run Code Online (Sandbox Code Playgroud) 我正在使用PHPUnit 3.4.14而我正在尝试添加一个监听器.
我写了一个简单的:
class My_Test_Listener implements PHPUnit_Framework_TestListener
{
public function addError(PHPUnit_Framework_Test $test, Exception $e, $time)
{
...
Run Code Online (Sandbox Code Playgroud)
我在我的phpunit.xml文件中声明了它:
<phpunit bootstrap="./bootstrap.php">
<testsuites>
<testsuite name="auth">
<directory>./library/Ademe/Auth</directory>
</testsuite>
</testsuites>
<listeners>
<listener class="Listener" file="./library/My/Test/Listener.php">
</listener>
</listeners>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
我的类被加载(如果我省略实现其中一个方法,它在日志中这样说),但我从不进入这些方法.我试过这个例子:
public function startTestSuite(PHPUnit_Framework_TestSuite $suite)
{
die('startTestSuite');
}
Run Code Online (Sandbox Code Playgroud)
你知道可能会遗漏什么吗?
谢谢!
我正在努力创建荷兰能源部门的合并时间表.我rank=same用来强制节点保持在同一年.但是,时间线会自行备份,因此"过去"中的节点与"1993"位于同一列中.

我如何强制将这些年份整齐地保持在一行中,并将相应的节点保存在单独的列中?
digraph energy_mergers {
ranksep=0.05
rankdir=LR
{
node [shape=plaintext, fontsize=8];
/* the time-line graph */
{past [shape=plaintext, fontsize=26]}
-> 1987 -> 1988 -> 1989
-> {1990 [shape=plaintext, fontsize=26]} -> 1991 -> 1992 -> 1993
-> 1994 -> 1995 -> 1996
-> 1997 -> 1998 -> 1999
-> {2000 [shape=plaintext, fontsize=26]} -> 2001 -> 2002
-> 2003 -> 2004
-> 2005 -> 2006 -> 2007
-> {2008 [shape=plaintext, fontsize=26]}
}
node [shape=box];
{ rank=source; past; "Obragas"; "Haarlemmermeer"; "NRE"; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个BATS(Bash自动化测试系统)脚本,我想要的是一个在所有测试中保持不变的变量.例如:
#!/usr/bin/env bats
# Generate random port number
port_num=$(shuf -i 2000-65000 -n 1)
@test "Test number one" {
a = $port_num
}
@test "Test number two" {
b = $port_num
}
Run Code Online (Sandbox Code Playgroud)
评估时,a和b应该相等.但这不起作用,因为(根据文档)在每次测试运行后评估整个文件.这意味着$ port_num在测试之间重新生成.我是否有办法/地方存储将在所有测试中保留的变量?
我正在使用 PlantUML 创建活动图。
Modify Details我想要的是出去的箭头OP2而不是菱形。
我有这个图:
@startuml
|Swimlane1|
start
:OP1;
|Swimlane2|
:OP2;
if (Form Valid?) then (No)
|Swimlane1|
:Modify Details; /' <-- This should point _back_ to OP2 '/
|Swimlane2|
else (Yes)
:Add Detals to System;
endif
:OP3;
|Swimlane2|
:foo5;
stop
@enduml
Run Code Online (Sandbox Code Playgroud)
这给出了这个图像:
我正在尝试使用 PlantUML(新测试语法)制作活动图。
到目前为止,我想出了(简化的):
@startuml
start
:A;
if (Q1) then (yes)
:B;
if (Q2) then (yes)
:D;
else (no)
:E;
endif
else (no)
:C;
endif
stop
@enduml
Run Code Online (Sandbox Code Playgroud)
这意味着,如果第一个问题是,则执行A,否则执行B,否则执行C。在B问问题2之后,如果是,则执行D,如果否,则执行E。
当问题 2 的答案为“否”时,我不想指向 E,而是转到活动 C,但我不知道如何引用它。如果我输入 :C; 那里(而不是:E;它只是被解释为一个新活动(但是它的流程应该从那里的 C 继续)。我假设有一种方法可以使用 PlantUML 绘制这样的流程,但我还没有看到它。
引用已定义的活动的最佳方式是什么?