小编use*_*356的帖子

通过更改查询字符串参数,非路由相关,在Symfony2中进行简单重定向

这应该很简单,我一直在谷歌搜索,但我一直在提出"路线"相关的建议.

我只想执行重定向到同一页面并修改其中一个查询字符串参数(清除一个或设置一个).

我无法在任何地方看到如何做到这一点.

一个选项可能是手动完全生成URL并使用此猜测,但这似乎不是一个非常好的方法:

$this->router->generate("http://domain.com?a=1")
Run Code Online (Sandbox Code Playgroud)

php symfony

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

在Symfony2中重定向和阻止缓存

我这样做:

domain.com/route-name/?do-something=1
Run Code Online (Sandbox Code Playgroud)

..which设置一个cookie,然后使用302重定向重定向到这个:

domain.com/route-name/
Run Code Online (Sandbox Code Playgroud)

它允许在不管页面查看的情况下进行操作(cookie存储用户的设置).

我使用默认的Symfony2反向代理缓存,一切都很好,但我需要阻止上述请求缓存.

我正在使用它来执行重定向:

// $event being a listener, usually a request listener

$response = new RedirectResponse($url, 302);    
$this->event->setResponse($response);
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情,但似乎没有任何效果:

$response->setCache(array('max_age' => 0));
header("Cache-Control: no-cache");
Run Code Online (Sandbox Code Playgroud)

那么如何阻止它缓存这些页面呢?

symfony

4
推荐指数
1
解决办法
5743
查看次数

使用PHP变量实例化一个类 - 命名空间的问题

以下所有示例都基于所有文件都存在于正确位置的保证.我高音检查过这个.

(1)这在不使用命名空间时有效:

$a = "ClassName";
$b = new $a();
Run Code Online (Sandbox Code Playgroud)

这不起作用:

// 'class not found' error, even though file is there

namespace path\to\here;
$a = "ClassName";
$b = new $a();
Run Code Online (Sandbox Code Playgroud)

这个工作:

namespace path\to\here;
$a = "path\to\here\ClassName";
$b = new $a();
Run Code Online (Sandbox Code Playgroud)

因此,当使用变量实例化类时,似乎忽略了名称空间声明.

有没有更好的方法(比我上一个例子)所以我不需要经历一些代码并更改每个变量以包含命名空间?

php namespaces

4
推荐指数
1
解决办法
1569
查看次数

如何使用Symfony2配置APC

我找不到任何关于如何使用Symfony2配置APC的文档.我不想编写任何特定代码或有任何高级代码,只需使用Symfony2进行基本的APC设置.

我已经取消注释了app.php中的两行,一切似乎都没问题(该网站开始运行).

然而...

(1)我听到人们谈论"重启APC" - 这是什么意思?我是否可以在任何想要完全清洁的时候运行它:

php console cache:clear --env=prod --no-debug
Run Code Online (Sandbox Code Playgroud)

(2)在app/config_prod.yml中,我看到了这个:

framework:
    router:
        strict_requirements: null
    #validation:
    #    cache: apc
Run Code Online (Sandbox Code Playgroud)

......那有什么作用呢?

在app.php中取消注释这两行似乎太容易了.必须有更多的配置选项.我再次不想要高级设置.

我甚至不知道APC是否正在运行,但考虑到网站运行告诉我它(在它之前没有,我需要在PHP中安装APC).

当我在Symfony2食谱中搜索"APC"时,它几乎没有返回.

apc symfony

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

如何简单地分支/复制master并将此分支上传到GitHub?

我必须遗漏一些非常明显的东西,但我很难做到这一点.

我想在我的本地计算机上复制'master'repo并创建我自己的分支'copy-of-master',然后将其上传到GitHub(没有任何更改).

我希望能够在GitHub上看到这个新的'master-of-master'分支与master相同,没有其他人会使用,所以我只需上传更改而无需触及master.

其他人会照顾以后将其合并为"主人".

为了增加混淆,我在命令行上使用了PhpStorm和Git的组合.

这就是我所做的,以及为什么我无法理解PhpStorm在做什么:

  1. git checkout master
  2. 在PhpStorm中添加了新的分支(来自我猜的主人).它确实在右下角显示了我当前的分支作为主人.
  3. 'git status'现在显示我在'copy-of-master'分支中.

现在,我当然只是'推'到回购,应该有我的分支.

问题是我在PhpStorm中尝试了这个问题,它提出了这个问题:

没有跟踪分支.使用下面的复选框将分支推送到手动指定,显示5个最近的提交

然后它显示了5次随机提交已经完成了多次.

此外,它在底部显示了一个选项"将当前分支推送到备用分支",但另一个分支是我已经在的分支(??).

我之前使用过PhpStorm Push,它总是自动将我的工作合并到主分支中.这次我不想弄乱任何东西.

根本没有其他人正在处理回购.

git github phpstorm

3
推荐指数
1
解决办法
5541
查看次数

尝试了解 Doctrine Criteria() 以及是否可以进行缓存

我需要编写一个简单的查询:SELECT propertyName from TABLE_NAME WHERE abc > 10

我相信我不能用简单的 $repository->findBy() 做到这一点,所以相信 DQL(或查询构建器)可以完成这项工作。像这样的东西:

$query = $this->createQueryBuilder('x')
      ->where('x.abc > :amt')
      ->setParameter('amt', 10)
      ->getQuery();

$query->getResult();
Run Code Online (Sandbox Code Playgroud)

但是,我听说 Doctrine 2.3 中提供的 Doctrine "Criteria" 是一种更好的方法。

(1) 我看到的文档很少,但 DQL 的推广仍然最多。有人可以给我一个非常简单的代码示例,与我上面的代码示例相同(但使用 Criteria)?

(2) 缓存呢?我知道我可以用 DQL 做到这一点,但是 Criteria 呢?

$query->useResultCache('cache_id');
Run Code Online (Sandbox Code Playgroud)

doctrine symfony doctrine-orm

3
推荐指数
1
解决办法
6042
查看次数

Twig/Symfony2 - 使用变量内部数组合并

{% set var_name1 = "hello" %}
{% set var_name2 = "there" %}
{% array1|merge({var_name1: var_name2}) %}
Run Code Online (Sandbox Code Playgroud)

我希望上面的代码将这个添加到array1:

hello:there
Run Code Online (Sandbox Code Playgroud)

......但它补充说:

var_name1:there
Run Code Online (Sandbox Code Playgroud)

我试过在var_name1周围包装{{}}.是否可以将记录添加到数组并使用变量作为键?

symfony twig

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

Symfony2 - $ this-> getUser()vs $ this-> get('fos_user.user_manager');

我正在使用FOSUserBundle.这两者有什么区别?

$this->get('fos_user.user_manager');
Run Code Online (Sandbox Code Playgroud)

...和...

$this->getUser();
Run Code Online (Sandbox Code Playgroud)

我发现我在不同的时间使用了上述两种方法,一切正常.

我猜第一个是来自FOS,第二个是默认的,但我猜我应该总是使用同一个.

这是我用过的一段代码:

$user = $this->getUser();
if($user) {             
    $email = $user->getEmail();
} else {
    $email = "no email";
}
Run Code Online (Sandbox Code Playgroud)

..另一个......

$userManager = $this->get('fos_user.user_manager');
$user = $userManager->findUserBy(array('memberID' => '123'));
Run Code Online (Sandbox Code Playgroud)

...所以我应该为两者使用相同的方法吗?

php symfony fosuserbundle

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

Twig(Symfony2) - 替换函数 - 从变量中替换 - 是否可能?(部分完成的代码)

我很接近,但似乎没有任何效果:

{% set a %}abc{% endset %}

{% set b %}123{% endset %}

{{ "test_abc123_xyz"|replace({ '{{ a }}{{ b }}': '' }) }}
Run Code Online (Sandbox Code Playgroud)

应该明白我正在尝试做什么,因为我认为上面唯一的错误是这一点:

'{{ a }}{{ b }}'
Run Code Online (Sandbox Code Playgroud)

...但我无法正确使用(我想将a和b的值一起使用并替换它).

如果工作,上面的结果将是:

test__xyz
Run Code Online (Sandbox Code Playgroud)

symfony twig

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

前端开发人员是否需要了解在站点上工作的后端技术?

场景:有人只知道设计,CSS,HTML等,你希望那个人在网站上工作.该网站的文件在GitHub上.

理想情况下,你对他们说,"克隆来自GitHub的回购并设置你的本地测试环境等,做你的工作和推/拉请求等."

但是要建立一个本地环境,例如包括MySQL以便开发环境能够正常运行,意味着他们需要了解后端技术.这是否意味着他们需要了解如何配置每个(或大多数)PHP框架+ Ruby on Rails等.它会停在哪里?

那么,前端开发人员将如何在此基础上工作呢?

前端开发人员是否可以在不知道如何配置Symfony2的情况下在Symfony2站点上工作?

html css web-frontend symfony

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