小编Tek*_*Tek的帖子

将动态变量传递给服务构造函数

我在Symfony2中有一个服务,看起来像:

services:
    MyCustomService:
        class:     MyClass
        arguments: //Arguments aren't static, but dynamic based on application logic.
Run Code Online (Sandbox Code Playgroud)

是否可以将动态变量传递给服务的构造函数?

在控制器中似乎没有任何额外的参数 $this->get('MyCustomService');

有什么我想念的吗?

symfony

12
推荐指数
2
解决办法
1万
查看次数

最新的OpenGL教程或c ++书籍

我是OpenGL的新手,我在Linux上并拥有支持OpenGL 3.2的NVIDIA卡.

我想从最近的OpenGL变化中学习.我正在寻找C++教程或OpenGL 3.0+书籍.

我知道这个问题经常被问到,但是所有来源似乎都很旧,或者教程都在C中.我找不到这个标准的体面教程,所以随时也可以推荐书籍.谢谢.

c++ opengl

10
推荐指数
1
解决办法
1749
查看次数

在MVC应用程序中从Model中正确调用数据库?

我正在构建一个微小的MVC框架,用于学习/实验和小项目目的.我需要找出模型内部的基础知识,因为完整的MVC框架和ORM对于少数数据库调用来说是过度的.

Class Model
{
}
Run Code Online (Sandbox Code Playgroud)

使用一个空类,我必须在哪里调用new PDO数据库调用的对象?

在模型中调用查询的内容是什么?

另外,我在哪里可以找到MVC的初学者的网络/书籍资源(有很多示例代码)?我听过很多术语,比如业务逻辑和数据库逻辑.我记得在某处你应该将业务逻辑和数据库逻辑分开.我可以在某种程度上理解这个概念,我只是想知道它在代码本身中的含义或含义.我很困惑业务逻辑和数据库逻辑应该如何分离,但仍然在模型中.

我主要是寻找代码/逻辑示例作为答案,除了后一段.

php database model-view-controller design-patterns model

10
推荐指数
1
解决办法
1万
查看次数

继承和责任

当我读到关于继承时,我总是对某个例子感到困惑.

通常有一个类似于下面例子的例子.

class Shape
{
public:
    Shape() {}
    virtual ~Shape  () {}
    virtual void Draw() = 0;
};

class Cube : public Shape
{
public:
   Cube(){}
   ~Cube(){}
   virtual void Draw();
};

Shape* newCube = new Cube();
newCube->Draw(); 
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么Shape要自拔自拔?难道渲染器类不应该知道如何绘制形状而是为渲染器提供形状吗?如果我们想记录维度的变化怎么办?等等?我们是否有针对这些不同任务的方法Shape

看到这样的众多例子有时让我想知道我将责任分配给班级的能力.有什么我不理解只有一个责任的课程吗?

oop inheritance single-responsibility-principle

10
推荐指数
1
解决办法
804
查看次数

在PHPUnit中模拟Symfony2的请求和会话

我有需要的一类Symfony2服务@request_stack返回的一个实例Symfony\Component\HttpFoundation\RequestStack.我用它来检索POST和GET值.

也是我的类使用Symfony\Component\HttpFoundation\SessionRequest->getSession()它调用来获得当前会话.

现在我的类有一个看起来像这样的方法:

class MyClass {
    public function doSomething() {
        //Get request from request stack.
        $Request = $this->RequestStack->getCurrentRequest();

        //Get a variable from request
        $var = $Request->request->get('something');
        //Processes $var into $someprocessedvar and lets say it's equal to 3.
        //Set value to session.
        $this->Request->getSession()->set('somevar', $someprocessedvar);
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要能够:

  1. 模拟RequestStack.
  2. 获得RequestRequestStack
  3. 获得SessionReques吨;

尽管如此,我如何测试MyClass成功设置会话中的预期值?

service phpunit mocking symfony

10
推荐指数
2
解决办法
1万
查看次数

函数getName在symfony 2表单中做了什么

这是我的表格类

class CommentType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('user')
            ->add('comment')

        ;
    }

    public function getName()
    {
        return 'sample_staticbundle_commenttype';
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法获得getName函数的功能

php symfony

8
推荐指数
1
解决办法
2453
查看次数

隐藏或加密文件的网址?

大家好,感谢您的时间.我只是想说,即使我在php上没有noobie,我还不知道所有的东西,我仍然缺乏一些能够解决其中一些问题的知识.

我目前的困境是:

我有一个包含用户制作歌曲的数据库,其中包含所有类型的信息,包括所述歌曲的位置.我有它工作的方式是我有一个PHP脚本,回放一个xspf播放列表文件供Flash播放器阅读,无论谁正在浏览歌曲.(最好的部分是玩家不关心它是一个php文件,只要它收到正确的xml格式).

问题是任何人都可以查看源代码(例如发现播放器使用xspf.php?= song_id = 10),php文件将以纯文本格式输出所有内容.我怎样才能隐藏或加密用户的mp3位置,但仍能让玩家正常工作?

我将来也会有用户能够下载曲目,但我想找到隐藏位置的方法,或者如果不是太难产生临时网址?分享你认为最好的解决这个问题的方法.

再次感谢任何回复!

php

7
推荐指数
2
解决办法
2281
查看次数

PHP 5.2中的DOMDocument :: saveHTML($ domnode)?

我在一个返回saveHTML()的类中有几个函数.在我在类saveHTML()中回显多个函数之后,它重复了一些HTML.我最初通过执行saveHTML($ node)解决了这个问题,但现在看来这似乎不是一个选项.

我不知道saveHTML($ domnode)仅在PHP 5.3.6中可用,我无法控制我上传文件的服务器,所以现在我必须使它与PHP 5.2兼容.

为了简单起见,它只是为了显示我的问题,它看起来与此类似:

<?php

class HTML
{
    private $dom;

    function __construct($dom)
    {
        $this->dom = $dom;
    }

    public function create_paragraph()
    {
        $p = $this->dom->createElement('p','Text 1.');

            $this->dom->appendChild($p);

        return $this->dom->saveHTML();
    }

    public function create_paragraph2()
    {
        $p = $this->dom->createElement('p','Text 2.');

            $this->dom->appendChild($p);

        return $this->dom->saveHTML();
    }
}

$dom = new DOMDocument;
$html = new HTML($dom);

?>
<html>
<body>
<?php

echo $html->create_paragraph();

echo $html->create_paragraph2();

?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

输出:

<html>
<body>
<p>Text 1.</p>
<p>Text 1.</p><p>Text 2.</p>
</body>
Run Code Online (Sandbox Code Playgroud)

我知道它为什么会发生但我不知道如何在没有saveHTML($ domnode)的情况下重复它.如何使用PHP 5.2使其正常工作?

这是我希望能够做的一个例子:

http://codepad.viper-7.com/o61DdJ

php dom

7
推荐指数
1
解决办法
2574
查看次数

自定义Symfony2过滤器不使用自定义树枝标记触发

TL:DR; 添加type="application/dart"使Assetic忽略过滤器标志filter=MyCustomFilter.

删除后一种属性类型触发filter=MyCustomFilter就好了.但我需要过滤器和属性.如何在具有type=application/dart属性时使Assetic触发我的自定义过滤器?

我相信问题的一部分是它只接受type=application/javascript或者type触发过滤器的空html 属性.我不知道从哪里开始.


详细信息:

我想制作一个类似于javascriptsDart文件的标签.

{% darts
    '@AcmeBundle/Resources/dart/AcmeMain/web/main.dart'
%}$ 
    <script type="application/dart" src="{{ asset_url }}"></script>
{% enddarts %}
Run Code Online (Sandbox Code Playgroud)

我希望能够使用@符号而不是/bundles/etc/

经过一番搜索,我尝试了以下方法:

我延长了 Symfony\Bundle\AsseticBundle\Twig\AsseticExtension

我继承了以下功能:

public function getTokenParsers()
{
    return array(
        $this->createTokenParser('javascripts', 'js/*.js'),
        $this->createTokenParser('stylesheets', 'css/*.css'),
        $this->createTokenParser('image', 'images/*', true),
    );
}
Run Code Online (Sandbox Code Playgroud)

在我自己的子类中,我添加到父数组中$this->createTokenParser('darts', 'dart/*.dart').

最初,这有效.

{% darts '@MyBundle\...\main.dart' filter="MyCustomFilter" %}
<script src="{{ asset_url }}"></script>
Run Code Online (Sandbox Code Playgroud)

但是,引导加载程序dart.js需要as type="application/dart属性才能使引导程序正常工作.

只要添加required属性,编辑源文件就不会重新编译.它几乎被忽略了.以下代码将被忽略,并且不会触发MyCustomFilter过滤器:

{% darts …
Run Code Online (Sandbox Code Playgroud)

php symfony twig assetic dart

7
推荐指数
1
解决办法
519
查看次数

为什么有一个mime类型与firefox,chrome不一致?

我一开始很困惑为什么我的文件没有为一些用户上传,我发现每个人都没有使用chrome,这是我正在测试的浏览器.

基本上我正在进行文件检查以确保它们只能上传mp3.

这适用于chrome,但不适用于firefox.

if ($_FILES['uploaded']['type']=="audio/mp3")
Run Code Online (Sandbox Code Playgroud)

这适用于firefox,但不适用于chrome.

$_FILES['uploaded']['type']=="audio/mpeg"
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么会这样吗?我认为两种浏览器都能够理解或者......有没有其他浏览器我可能需要担心这些敏感的mime类型?

编辑:如果Pekka建议的是真的,检查某种哑剧类型的最佳方法是什么?

php

6
推荐指数
1
解决办法
2619
查看次数