小编Mat*_*teo的帖子

自定义Sonata Admin Dashboard - Sonata和Symfony 2

我已经按照本教程开始工作了:http://sonata-project.org/bundles/admin/master/doc/reference/getting_started.html.我的管理类正在显示,一切正常,这很好.我还在顶部添加了自定义徽标.

现在,我只想自定义仪表板.例如,我显示了一个"Station"实体.要向此实体添加条目,该链接的名称为"link_add".列表相同:"link_list".依此类推,"label_filters","link_action_create",......一切都是这样的.我想这是此操作进入默认布局的标准名称.但即使是演示,它也不是很"性感".

我该如何更改这些名称?我无法弄清楚我要编辑哪个文件?甚至是我应该做的.

谢谢.

php symfony symfony-sonata sonata-admin sonata

5
推荐指数
1
解决办法
1718
查看次数

如何在错误报告工具中捕获 MVXTrace

我正在使用 MvvmCross 并尝试使用一些方法在我的报告工具中获取 MvxTrace。在这种情况下,我使用的是 Raygun。Raygun 为我提供了在我想抛出的错误消息中包含附加消息的选项,我认为我必须使用它来实现这一点。基本上我想在代码中做这样的事情:

var client = new RaygunClient();
var tags = new List<string> { "myTag" };
var customData = new Dictionary<int, string>() { {1, "**MVXTrace stuff here**"} };
client.Send(exception, tags, customData);
Run Code Online (Sandbox Code Playgroud)

我怎么能把它挂起来?当我查看 Trace 设置时,我感到很困惑。我假设我需要对我用来注入的 DebugTrace 文件做一些事情。现在它看起来像这样:

public class DebugTrace : IMvxTrace
{
    public void Trace(MvxTraceLevel level, string tag, Func<string> message)
    {
        Debug.WriteLine(tag + ":" + level + ":" + message());
    }

    public void Trace(MvxTraceLevel level, string tag, string message)
    {
        Debug.WriteLine(tag + ":" + level + ":" …
Run Code Online (Sandbox Code Playgroud)

mvvmcross xamarin raygun.io raygun

5
推荐指数
1
解决办法
781
查看次数

在RabbitMQ中使用声明Exchange

我只是在RabbitMQ上做项目,我的代码片段正好在生产者的代码下面

public static void Main()
{
    var factory = new ConnectionFactory() { HostName = "localhost" };
    using (var connection = factory.CreateConnection())
    {
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare("hello", false, false, false, null);

            string message = "Hello World!";
            var body = Encoding.UTF8.GetBytes(message);

            channel.BasicPublish("", "hello", null, body);
            Console.WriteLine(" [x] Sent {0}", message);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

声明Exchange的消费者代码

public static void Main()
{
    var factory = new ConnectionFactory() { HostName = "localhost" };
    using (var connection = factory.CreateConnection())
    {
        using (var …
Run Code Online (Sandbox Code Playgroud)

c# rabbitmq rabbitmq-exchange

5
推荐指数
1
解决办法
2052
查看次数

Symfony2:如何将Authentication Listener配置值转换为其他服务?

我正在为Symfony 2创建一个身份验证提供程序,允许用户使用名为CAS的单点登录协议进行身份验证.

我的身份验证侦听器AbstractAuthenticationListener扩展.其中一个配置参数是check_path,它是触发身份验证侦听器对请求进行身份验证的路径/路由.

我需要check_path在构建CAS服务器的URL时(因此CAS服务器知道将用户返回到哪里),这很容易,因为我的自定义入口点类在我的安全工厂中构建时传递了配置数组.

困难的部分是我还需要check_path在侦听器之外,就像在Authentication Provider类中进行身份验证时一样.我需要它,因为当CAS服务器将用户发送回应用程序时,它会传递必须经过验证的"票证"参数.为了验证它,我向CAS服务器发送一个curl请求,该服务器必须包含票证以及check_path使用的原始票据.

正如写的那样,我意识到当我进入身份验证提供程序时,我可以获取页面请求的当前URL(因为check_path它无论如何都会触发它),但这似乎是关闭的,我宁愿直接获取配置值重新构建服务URL.当我想在check_path其他地方使用它时,它也没有帮助,比如在构建CAS服务器的注销URL时也需要check_path.

编辑:createAuthProvider方法AbstractFactory是通过双方的配置和容器,但我不能改变我的任何服务,在这里,因为他们还没有容器的一部分.也许如果我有办法在加载服务后添加编译器传递并以某种方式访问​​侦听器配置?

cas single-sign-on symfony

5
推荐指数
1
解决办法
760
查看次数

在Symfony 2.5和Doctrine查询构建器中使用括号(>)

我正在使用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)

mysql sum function symfony doctrine-orm

5
推荐指数
1
解决办法
651
查看次数

如何嘲笑mock内部方法

目标.php

<?php

class Target
{
    public function validate()
    {
        $this->getData();
        return true;
    }

    public function getData()
    {
        return array();
    }
}
Run Code Online (Sandbox Code Playgroud)

目标测试.php

<?php

class TargetTest extends PHPUnit_Framework_TestCase
{
    public function testValidate()
    {
        $mock = m::mock('Target');
        $mock->shouldReceive('getData')
            ->once();
        $expected = $this->exp->validate();

        $this->assertTrue($expected);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果

Mockery\Exception\InvalidCountException: Method getData() from Mockery_1_ExpWarning should be called exactly 1 times but called 0 times.

我使用Mockery作为模拟工具,示例总是关于如何模拟DI,我想知道我可以模拟内部方法吗?

php phpunit unit-testing mockery

5
推荐指数
1
解决办法
3860
查看次数

Symfony 2.8/3.0升级:如何处理带有可变参数的表单类型?

假设我将自定义表单类型创建为服务,如Symfony文档中所述.但我想要2个"性别"自定义类型,有2个不同的输入参数,我在Symfony 2.7中这样做:

# app/config/config.yml
parameters:
    genders1:
        m: Male
        f: Female
    genders2: # This makes no sense at all, but it is for the example purpose!
        h: Horse
        t: Turtle
Run Code Online (Sandbox Code Playgroud)

然后,我宣布了两个这样的服务:

<!-- src/AppBundle/Resources/config/services.xml -->
<service id="app.form.type.gender1" class="AppBundle\Form\Type\GenderType">
    <argument>%genders1%</argument>
    <tag name="form.type" alias="gender1" />
</service>

<service id="app.form.type.gender2" class="AppBundle\Form\Type\GenderType">
    <argument>%genders2%</argument>
    <tag name="form.type" alias="gender2" />
</service>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我使用相同的 GenderType类来处理2种自定义表单类型(使用gender1gender2别名),我可以这样使用:

$builder
    ->add('field1', 'gender1')
    ->add('field2', 'gender2');
Run Code Online (Sandbox Code Playgroud)

这允许我在一个GenderType具有不同输入参数的类()中添加一些公共逻辑(在这个例子中我有比2更多的可能性).

但是从Symfony 2.8开始,不推荐使用服务别名添加字段.类名必须作为第二个参数传递,如下所示:

$builder->add('field1', GenderType::class)
Run Code Online (Sandbox Code Playgroud)

那么如何才能区分我的2个服务(每个服务都没有相同的输入参数)?

创建Gender1TypeGender2Type扩展抽象GenderType …

symfony-forms symfony symfony-2.8

5
推荐指数
1
解决办法
908
查看次数

Docker-MongoDB中的身份验证问题

我已经通过docker镜像在Linux Ubuntu中安装了MongoDB.我已经在YAML文件中设置了如下的参数来实现mongodb的身份验证.但是当我使用命令启动服务器时docker-compose up -d,我收到的错误就像

"'db'服务不支持的配置选项:'security'".

我该如何解决这个问题?

docker-compose.yaml:


db:
   image: mongo:2.6.4
   command: ["mongod", "--smallfiles"]
   expose: "27017"
   ports: "27017:27017"
   security: keyFile: "/home/ubuntu/dockerlab/keyfile.key"
   authorization: "enabled"
Run Code Online (Sandbox Code Playgroud)

mongodb docker docker-compose

5
推荐指数
1
解决办法
1502
查看次数

删除子类属性中的所有验证约束

我有清除从超类扩展的所有验证约束的问题.以下是我的代码

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

5
推荐指数
1
解决办法
777
查看次数

如何将xml节点添加到symfony Crawler()

我需要在saymfony中管理xml文档.

我没有问题将xml放入Crawler()实例,修改现有节点,然后将xml放入文件中.

但我无法添加新节点.

当我尝试将一个带有appendChild方法的新节点添加到父节点时,我得到了:

错误的文件错误

当我尝试向抓取工具添加方法时,我得到了:

无法向爬虫添加两个不同的源?

如何将简单节点添加到现有爬网程序?

谢谢你的回复

xml web-crawler symfony dom-node

5
推荐指数
1
解决办法
1237
查看次数