小编Ale*_*sov的帖子

Facebook API:获取共享帖子ID

使用FB Graph API,是否可以检查帖子是否像这样共享?https://www.facebook.com/alexey.kosov/posts/10203624447732200

以及如何获得原始帖子ID?

facebook-graph-api

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

ZF2应用程序中的Doctrine ORM缓存

我在Zend Framework 2项目中使用Doctrine 2 ORM,我想澄清一些有关缓存的细节.

Doctrine配置看起来像

return array(
    'doctrine' => array(
        'driver' => array(
            'application_entities' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'doctrine_cache_entities', // 1
                'paths' => array(__DIR__ . '/../src/Application/Entity')
            ),
            'orm_default' => array(
                'drivers' => array(
                    'Application\Entity' => 'application_entities',
                ),
            ),
        ),
        'configuration' => array(
            'orm_default' => array(
                'metadata_cache' => 'doctrine_cache_metadata', // 2
                'query_cache' => 'doctrine_cache_query', // 3
                'result_cache' => 'doctrine_cache_result', // 4
                'hydration_cache' => 'doctrine_cache_hydration', // 5
            )
        ),
    ),
);
Run Code Online (Sandbox Code Playgroud)

在这里我们可以看到5种不同类型的缓存:

  • 实体缓存
  • 元数据缓存
  • 查询缓存
  • 结果缓存
  • 水化缓存

但是,Doctrine控制台工具中只有3个选项可以清除缓存: …

php caching doctrine-orm zend-framework2

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

ElasticSearch聚合:每个聚合排除一个过滤器

我想过滤掉字段'A'等于'a'的文档,我想同时面对字段'A',当然不包括前一个过滤器.我知道您可以将过滤器放在查询"外部",以便在没有应用过滤器的情况下获取构面,例如:

ElasticSearch

{
   "query : { "match_all" : { } },  
   "filter" : { "term : { "A" : "a" } },
   "facets" : { 
      "A" : { "terms" : { "field" : "A" } }  //this should exclude the filter A:a
   }
}
Run Code Online (Sandbox Code Playgroud)

SOLR

&q=:*:*
&fq={!tag=Aa}A:a
&facet=true&facet.field={!ex=Aa}A
Run Code Online (Sandbox Code Playgroud)

这是非常好的,但如果我有多个过滤器和方面,每个过滤器应该相互排斥,会发生什么?例:

filter=A:a
filter=B:b
filter=C:c

facet={exclude filter A:a}A
facet={exclude filter B:b}B
facet={exclude filter C:c}C
Run Code Online (Sandbox Code Playgroud)

也就是说,对于方面,AI希望保留除A:a之外的所有滤波器,对于小平面B除了B:b之外的其他所有滤波器,依此类推.最明显的方法是进行n个查询(每个n个方面各一个),但我想远离那个.

faceted-search elasticsearch

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

GuzzleHttp异步请求异常

我无法弄清楚如何从Guzzle future response处理程序中抛出异常.这是我的代码:

<?php
require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

$req = $client->createRequest('GET', 'http://www.google.com', array(
    'future' => true,
));
echo "Sending request\n";
$response = $client->send($req);

try {
    $response->then(function ($data) {
        echo "Response is received\n";
        throw new Exception('Test');
    })->then(function () {
        // success handler
    }, function (Exception $exception) {
        echo "Error handler invoked\n";
        throw $exception;
    });
} catch (Exception $e) {
    echo "Exception catched\n";
}
echo "Finish\n";
Run Code Online (Sandbox Code Playgroud)

catch块是从来没有在这种情况下达成.

php guzzle

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

表单实体:添加额外选项

我使用 Symfony 表单来过滤一组数据。比如说,有一个“用户”下拉列表过滤日志记录表(每个记录可以与用户链接,但也可以不链接)。

换句话说,LogRecord <- many-to-one nullable -> User

问题是我希望它支持下拉列表中的 2 个选项:所有用户(禁用此字段的过滤)和“无用户”,它应该过滤字段 = NULL 的记录。但我不知道如何学习表单来区分这些情况,而不破坏表单验证过程。有任何想法吗?

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->setMethod('GET');

    $builder
        ->add('user', EntityType::class, array(
            'class' => 'AppBundle:User',
            'choice_label' => 'name',
            'placeholder' => 'All',
            'query_builder' => function (UserRepository $repo) {
                return $repo->findForOptionsQueryBuilder();
            },
            'label' => 'User',
            'required' => false,
        ));
}
Run Code Online (Sandbox Code Playgroud)

当前下拉列表:

  • 全部
  • 用户1
  • 用户2

所需的下拉菜单:

  • 全部
  • 无(空)
  • 用户1
  • 用户2

php symfony-forms symfony doctrine-orm

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