标签: symfony1

在迁移期间添加新的枚举列

任何人都可以请告诉我如何为我的架构添加一个类型枚举的新列以实现Doctrine Migration?

migration doctrine symfony1

9
推荐指数
3
解决办法
7641
查看次数

在Symfony中启用CSRF的功能测试表单

在Symfony中启用CSRF保护的情况下,为测试表单创建功能测试的最佳方法是什么?

目前,我必须在每个表单提交之前添加以下代码:

  $form = new sfGuardFormSignin();
  $token = $form->getCSRFToken();
  $token_name = $form->getCSRFFieldName();
Run Code Online (Sandbox Code Playgroud)

然后我添加$ token和$ token_name来形成如下参数:

call('/login', 'POST', array (
    'signin' => 
    array (
      'username' => $username,
      'password' => $password,
      $token_name => $token,
    )))
Run Code Online (Sandbox Code Playgroud)

文档中建议的选项:

'_with_csrf' => true,
Run Code Online (Sandbox Code Playgroud)

根本不起作用.

是否有更简单的方法可以避免为每个手动测试表单添加令牌?或者有没有办法在运行测试时关闭csrf检查?

当你必须测试1-2个表单时,我上面描述的方式是可以的,但如果项目包含数十个独特的表单,则会变得很痛苦.

forms symfony1 csrf functional-testing

9
推荐指数
1
解决办法
3522
查看次数

从Database/Excel/CSV转换为YAML数据夹具?

想知道是否有一个易于将结构化文件转换为Doctrine/Symfony的YAML数据夹具.

我没有看到Doctrine接受CSV的任何实用程序.

我可能只是开始写一些简单的事情来做这件事.值得吗?

csv excel yaml doctrine symfony1

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

在symfony中没有通过doctrine的数据库连接

我正在研究symfony教程的jobeet,我有问题通过doctrine获得MySQL数据库的数据库连接.开发环境:Mac OS X和XAMPP.

命令php symfony doctrine:build-schema给我以下错误消息:

警告:PDO :: __ construct():[2002]在/ Users/xx/projects/myproject/lib/vendor/symfony中没有这样的文件或目录(尝试通过unix:///var/mysql/mysql.sock连接)第470行上的/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php
PDO连接错误:SQLSTATE [HY000] [2002]没有这样的文件或目录

database.yml中的数据库设置:

 all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: 'mysql:host=localhost;dbname=my_project_db'
      username: root
      password: root
Run Code Online (Sandbox Code Playgroud)

MySQl正在运行.用户名和密码是正确的.数据库'my_project_db'存在.

有人能给我一个暗示会出错的事吗?

php mysql xampp doctrine symfony1

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

在symfony中以交互方式启用调试模式

我正在使用symfony 1.4和Doctrine.

我正试图找到一种方法来启用调试模式,只有当前sfUser有一个特殊的debugger凭证.

我已经创建了一个过滤器,如果sfUser没有此凭据(在我的文件中web_debug设置为),则停用symfony调试栏:truesettings.yml

class checkWebDebugFilter extends sfFilter
{
  public function execute($filterChain)
  {
    if(!$this->getContext()->getUser()->hasCredential('debugger'))
    {
      sfConfig::set('sf_web_debug', false);
    }

    $filterChain->execute();
  }
}
Run Code Online (Sandbox Code Playgroud)

我的index.php文件的代码是:

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false));
sfContext::createInstance($configuration)->dispatch();
Run Code Online (Sandbox Code Playgroud)

问题是,由于debug模式false在我的硬编码中index.php,它也被调试器禁用; 因此,Web调试栏不显示Doctrine语句或时序指示.

有没有办法只在当前sfUser具有精确凭证的情况下启用调试模式?

我试图添加sfConfig::set('sf_debug', true);到我的checkWebDebugFilter::execute()方法,但由于过滤器 Doctrine语句之后执行,因此不会记录它们.

我还尝试添加session_start();我的index.php文件,然后浏览$_SESSION变量以检查当前用户是否具有debugger凭证,但它不起作用(并且它也不符合symfony的精神).

提前感谢您的回答.

php debugging symfony1

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

从Aptana Studio 3终端连接到远程主机

如何从Aptana Studio 3终端视图连接到远程主机,并使用该服务器上的命令?

我正在使用symfony框架,该项目在我的主机192.168.0.100中,所以我想运行symfony命令,如: $ symfony propel:build-schema

aptana ssh terminal symfony1 aptana3

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

Php框架:symfony 1,symfony 2或Yii

我们将从自制框架切换到Symfony或Yii.从我们的观点来看,这两个框架的能力是相似的(即它们都有我们需要的东西).

我们的情况:php 5.2.9,中型网站(10.000唯一身份/天)但共享主机.

  • 鉴于我们拥有的php版本,我们不能选择symfony 2(它需要5.3.4)因此,现在版本2已经用完了,这是一个聪明的举动去symfony 1吗?
  • 我们在共享托管(去专用服务器现在不是一个选项,我们没有钱),不会symfony 1和yii要求太多的资源(我更担心symfony 1 ,从我读过的)?
  • 一些网站贡献者并不熟悉php/MVC框架:一旦网站结构转换为这两个框架中的一个,这些贡献者会遇到困难吗?花2-3天发现框架是可以的,2-3周不是.我读过yii比symfony有更少的教程(但是完整的文档),但最后一个更难理解.

请不要回答"这个更好",最好是最近会使用这两个框架的人.

php frameworks symfony1 yii symfony

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

将POST请求发送到安全操作

我有一个动作,它接受sfGuard保护的POST数据.这意味着如果用户未登录,POST数据将被发送到登录表单.通常,这不是问题,用户继续登录,并且必须再次提交数据.

不幸的是,登录表单似乎使用POST数据,就好像它是与表单本身一起提交的.这意味着它抱怨所需的用户名和密码字段丢失,并且它抱怨它缺少CSRF令牌.无论如何,在提交表单后,最后一个问题不会消失,这意味着用户无法登录.

如果没有登录,则不应向用户显示表单,但用户可能可以在表单仍然打开的情况下注销.所以我要求保持界面的防水和无错误.

这是sfGuard的缺点,可以避免,还是我做错了?

澄清一下,路线如下:

add_subgroup:
  url:      /group/:id/add
  class:    sfPropelRoute
  options:
    model:  Group
    type:   object
  param:    { module: subgroups, action: create }
  requirements:
    group_id: \d+
    sf_method: [post]
Run Code Online (Sandbox Code Playgroud)

用于提交请求的表单如下:

<form action="<?php echo url_for('add_subgroup', $group) ?>" method="post">
  <input type="hidden" name="group_id" value="<?php echo $group->getId() ?>" />
  <input type="text" name="subgroup_id" />
  <input type="submit" class="button" value="Add" />
</form>
Run Code Online (Sandbox Code Playgroud)

php post symfony1 sfguard symfony-1.4

9
推荐指数
1
解决办法
595
查看次数

什么是使用Symfony的EventDispatcher组件的正确方法?

我想通过使某些类可观察来促进我的PHP代码中的松散耦合.Symfony的EventDispatcher组件看起来很有前途,SPL SplObserver/SplSubject对也是如此.

最好的方法是什么?我可以看到几种不同的可能性:

(1)将EventDispatcher实例注入每个可观察类(跟踪全局EventDispatcher实例):

class Foo
{
    public function __construct($dispatcher)
    {
        $this->dispatcher = $dispatcher;
    }

    public function bar()
    {
        $this->dispatcher->dispatch(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

(2)让observable类扩展EventDispatcher类:

class Foo extends EventDispatcher
{
    public function bar()
    {
        $this->dispatch(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

(3)使用SplObserver/SplSubject - 直截了当,但不如EventDispatcher组件灵活

php oop design-patterns symfony1

9
推荐指数
1
解决办法
3822
查看次数

是否可以在Doctrine 2 ODM中的多个字段上使用sort()?

我在我的学说mongodb*odm*中对结果文档进行查询.文档中有两个索引字段,我想在排序中使用.我写了类似的东西:

$results = $this->createQueryBuilder('Document\Score')
            ->sort('finalScore', 'desc')
            ->sort('date', 'desc')
            ->getQuery()
            ->execute();
Run Code Online (Sandbox Code Playgroud)

这里第二个sort()函数会覆盖第一个函数,并且永远不会找到指定的结果.

在此先感谢您的帮助.

sorting symfony1 mongodb doctrine-orm odm

9
推荐指数
1
解决办法
3798
查看次数