小编Con*_*nce的帖子

docker-compose yml在运行后运行脚本

我想在运行后立即运行脚本

`docker-compose up -d` 
Run Code Online (Sandbox Code Playgroud)

这是我的片段docker-compose.yml.其他设置是mysql服务器,redis ...等....但它们不会导致任何问题

web:
  image: nginx
  container_name: web-project
  volumes:
     - ./code:/srv

  working_dir: /srv/myweb
  extra_hosts:
    - "myweb.local:127.0.0.1"
  ports:
   - 8081:80
#  tty: true
  command: sh /srv/scripts/post-run-web.sh
Run Code Online (Sandbox Code Playgroud)

所以每当我跑步 docker-compose up -d或者 docker-compose up一切都停止.(容器不能继续运行).虽然我的shell脚本很简单(运行echos ...或phpunit).这是我的剧本.

#!/bin/bash

echo running post install scripts for web..;
cd /srv/myweb
npm install
composer self-update
composer update
Run Code Online (Sandbox Code Playgroud)

这就是我得到的错误.就像服务器(nginx)还没有运行一样.此外,如果我使用exec bash连接到服务器,并检查进程.我没有看到nginx正在运行(还).

web_1      | You are already using composer version 7a9eb02190d334513e99a479510f87eed18cf958.
web_1      | Loading composer repositories with package information
web_1      | Updating dependencies (including require-dev) …
Run Code Online (Sandbox Code Playgroud)

bash nginx docker docker-compose

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

Doctrine2使用setParameters

当我似乎在我的查询中使用参数时,我收到一个错误

参数号无效:绑定变量数与令牌数不匹配

这是我的代码

public function GetGeneralRatingWithUserRights($user, $thread_array)
{
    $parameters = array(
        'thread' => $thread_array['thread'],
        'type' => '%'.$thread_array['type'].'%'
    );

    $dql = 'SELECT p.type,AVG(p.value) 
        FROM TrackerMembersBundle:Rating p 
        GROUP BY p.thread,p.type';

    $query = $this->em->createQuery($dql)
        ->setParameters($parameters);

    $ratings = $query->execute();

    return $ratings;
}
Run Code Online (Sandbox Code Playgroud)

如何正确配置参数数组?

sql symfony doctrine-orm

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

Symfony2,Doctrine Extensions Tree:生成类似"树"的下拉列表选择列表

我有一个使用Tree架构构建的Categories表,使用Doctrine Tree Extension,它看起来像这样

id  parent_id   title   lft lvl rgt root
864 (NULL)  Movies  1   0   18  864
865 864 Packs   2   1   3   864
866 864 Dubbed  4   1   5   864
Run Code Online (Sandbox Code Playgroud)

在视觉上像这样:

Movies
|
|
|->Packs
|->Dubbed
Run Code Online (Sandbox Code Playgroud)

现在我想生成用于添加评论的表单,并将类别作为每个电影的下拉列表加载,所以我在我的电影评论表单类型中

public function buildForm(FormBuilder $builder, array $options)
{

    $builder->add('name');
    $builder->add('file');
    $builder->add('cover');
    $builder->add('category','entity',           array('class'=>'Tracker\MembersBundle\Entity\Category', 'property'=>'title', ));           
}
Run Code Online (Sandbox Code Playgroud)

这会生成一个正常的下拉菜单:

在此输入图像描述

我如何配置我的菜单设置,所以它会这样生成一个Tree-Like-dropdown select

在此输入图像描述

html forms symfony doctrine-orm

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

跑js运行测试

我正在尝试运行我的帆单元测试(使用摩卡和伊斯坦布尔)

跑步的时候

grunt test
Run Code Online (Sandbox Code Playgroud)

我得到了错误

  1) "before all" hook
  2) "after all" hook

  0 passing (5s)
  2 failing

  1)  "before all" hook:
     Error: timeout of 2000ms exceeded
      at null.<anonymous> (/vagrant/node_modules/mocha/lib/runnable.js:157:19)
      at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)

  2)  "after all" hook:
     ReferenceError: sails is not defined
Run Code Online (Sandbox Code Playgroud)

设置似乎没有找到我的Sails ...但正在做

which sails
Run Code Online (Sandbox Code Playgroud)

我明白了

/usr/local/node/node-default/bin/sails
Run Code Online (Sandbox Code Playgroud)

并且运行sails lift正常

这是我项目中的mocha测试文件

//boostrap.test.js
var Sails = require('sails');

before(function(done) {
  Sails.lift({
    // configuration for testing purposes
  }, function(err, sails) {
    if (err) return done(err);
    // here you can …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js gruntjs sails.js

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

FOSUserBundle:自定义密码/从旧DB结构迁移

我想转移到Symfony2,因为它的现代性和良好的编程给我留下了深刻的印象.

现在我从我的旧系统中获取一个用户表,有10,000个用户,我不想通过让他们设置一个新密码来激怒他们....所以我希望他们能够使用他们的旧密码登录

下面是我的用户表如何看起来像有关登录/注册的3个主要字段的伪代码:

id, int(10) unsigned NOT NULL
username varchar(40) NOT NULL
passhash varchar(32) NOT NULL
secret varchar(20) NOT NULL
Run Code Online (Sandbox Code Playgroud)

注册时,数据以这种方式生成:

$secret = mksecret ();
$passhash = md5 ($secret . $password_formfield . $secret);
Run Code Online (Sandbox Code Playgroud)

登录时,以下列方式检查数据:

if ($row['passhash'] != md5 ($row['secret'] . $password_formfield . $row['secret']))
{
//show login error
}
Run Code Online (Sandbox Code Playgroud)

那么如何在FOSUserBundle中最好地处理它,而不必编辑太多文件?

passwords md5 database-migration symfony fosuserbundle

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

在phpstorm和docker中的xdebug

我设法将xdebug与docker和phpstorm结合使用.对于http调用... IE

http://192.168.99.100:8081/?XDEBUG_SESSION_START=PHPSTORM

但是当我尝试运行我的phpunit测试时,它没有与phpstorm连接

我在phpstorm中执行了正确的目录映射,并在docker-instance上运行了以下命令 export XDEBUG_CONFIG="idekey=PHPSTORM"

我也试过我的docker:导出PHP_IDE_CONFIG ='serverName = web.docker'并在phpstorm web.docker上命名服务器配置.仍然在http而不是CLI上工作

那么我可以将phpstorm和xdebug一起用于命令行吗?

这是我的档案: /etc/php5/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_connect_back=1
xdebug.remote_host=172.17.42.1
dxdebug.remote_autostart=1
Run Code Online (Sandbox Code Playgroud)

当我打开日志记录,并使用xdebug_remote_host IP地址时,我得到了

W: Remote address not found, connecting to configured address/port: localhost:9000. :-|
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:20:39

Log opened at 2015-10-13 12:22:58
I: Checking remote connect back address.
W: Remote address not found, connecting to configured address/port: 172.17.42.1:9000. :-|
E: Could not connect to client. :-(
Log closed at …
Run Code Online (Sandbox Code Playgroud)

php xdebug phpstorm docker

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

Crawler + Guzzle:访问表单

我使用php guzzle客户端抓取网站,然后使用symfony 2.1抓取工具处理它

我正在尝试访问表单....例如此测试表单 http://de.selfhtml.org/javascript/objekte/anzeige/forms_method.htm

$url = 'http://de.selfhtml.org/javascript/objekte/anzeige/forms_method.htm';
$client = new Client($url);

$request = $client->get();
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYHOST, false);
$request->getCurlOptions()->set(CURLOPT_SSL_VERIFYPEER, false);
$response = $request->send();
$body = $response->getBody(true);
$crawler = new Crawler($body);
$filter = $crawler->selectButton('submit')->form();
var_dump($filter);die();
Run Code Online (Sandbox Code Playgroud)

但我得到了例外:

当前节点列表为空.

关于如何访问表单,我有点迷茫

php symfony symfony-2.1 guzzle

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

响应特定操作的事件侦听器

我有一个事件监听器,方法看起来像这样

public function onKernelResponse(FilterResponseEvent $event,EntityManager $entityManager)
{

    $controller = $event->getController();

    if (!is_array($controller)) {
        return;
    }



    if ($controller[0] instanceof UserController) {

        //@TODO limit this for Controller action editUser() only

        $response = $event->getResponse()->getContent();
        $responseDecoded = json_decode($response);
        if ($responseDecoded instanceof UserProperties) {

        }
    }


}
Run Code Online (Sandbox Code Playgroud)

我的services.yml看起来像这样

update_user_controller_listener_marking_tasks:
        class: Company\UserResultBundle\EventListener\UserEditListener
        arguments: [@doctrine.orm.entity_manager]
        tags:
           - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
Run Code Online (Sandbox Code Playgroud)

问题是监听器为在该用户控制器中执行的每个动作运行,这是我不想要的.

我的问题是我如何限制只在特定行动的响应中运行.我们说吧editUser()

我无法找到明确显示文档的内容

symfony symfony-2.1

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

Symfony2表单:生成复选框

目前我有一个表单,从我的类别实体生成一个下拉选择:

        $builder
            ->add('category', 'entity',
                    array('class' => 'TrackerMembersBundle:Category',
                            'property' => 'title',));
Run Code Online (Sandbox Code Playgroud)

现在我想生成复选框,在那里我可以选择多个选项...我搜索了symfony2文档,但找不到一个简单的方法直接从我的Entity.Any想法吗?

forms symfony twig

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

PHP:返回每个数组元素或停止的长度

鉴于我有一个数组,说:

$myArray=['12','AB','3C']
Run Code Online (Sandbox Code Playgroud)

我想返回值2(这是每个数组元素的长度.)

但万一我有类似的东西

$myArray=['12','AB2','3C']
Run Code Online (Sandbox Code Playgroud)

我想在数组的第二个元素之后立即停止计算/循环'AB2',让我的函数返回null.

在性能和速度有效的问题上达成此目标的最有效方法是什么?因为这样的阵列可以变长.

php arrays cost-based-optimizer

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

PHP:数组匹配问题

我有array1以下内容

array(
'banana',
'apple',
'orange');
Run Code Online (Sandbox Code Playgroud)

我有一个不同的关联数组2与项目的内容和价格

array('banana'  => '1.45',
'apple'   => '2.99',
'carrot'  => '1.99',
'orange'  => '0.99',
'papaya'  => '2.99');
Run Code Online (Sandbox Code Playgroud)

我如何生成一个最终数组,将两者与它们的公共部分结合起来,得到最终结果:

   array('banana'  => '1.45',
  'apple'   => '2.99',
  'orange'  => '0.99');
Run Code Online (Sandbox Code Playgroud)

php arrays

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

如何在Symfony 3中模拟'find'方法

我试图模仿它的find方法EntityRepository,以便测试不会在数据库中查找数据,但它似乎不起作用.这是setUp测试类的方法

public function setUp()
{
    parent::setUp();

    $this->client = static::createClient();
    $this->peopleManager = $this->getMockBuilder(PeopleManager::class)
        ->setMethods(['createPerson','peopleUpdate', 'peopleDelete', 'peopleRead'])
        ->disableOriginalConstructor()
        ->getMock();

   $this->repository = $this->getMockBuilder(EntityRepository::class)
       ->disableOriginalConstructor()
       ->getMock();

   $this->em = $this->getMockBuilder(EntityManager::class)
       ->disableOriginalConstructor()
       ->getMock(); 
}
Run Code Online (Sandbox Code Playgroud)

这是我们调用find函数的方法

public function updatePersonAction($id, Request $request)
{
    $repository = $this->getDoctrine()->getRepository('GeneralBundle:People');
    $person= $repository->find($id);
    if($person)
    {
        $data = $request->request->get('array');
        $createdPeople = array();
        $UpdatedPerson = "";
        foreach($data as $content)
        {
            $prueba = $this->get('people.manager');
            $UpdatedPerson = $prueba->peopleUpdate(
                $person,
                $content['name'],
                $content['surname'],
                $content['secondSurname'],
                $content['nationality'],
                $content['birthday'],
                $content['identityCard'],
                $content['identityCardType']
            );
            array_push($createdPeople, $person);
        }
        $serializedEntity …
Run Code Online (Sandbox Code Playgroud)

php testing mocking symfony doctrine-orm

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