小编mr1*_*011的帖子

将整数(id)映射到文本字符串?

在我的数据库中,我将一个名为"type"的字段存储为tinyInt,因为我没有那么多类型,所以我决定不创建一个表来存储所有这些类型的相应名称.

当我查询我的表时,我希望将类型替换为我在php数组中存储的相应名称.我想知道是否有办法在sql语句本身内进行此替换,而不是循环遍历结果并在返回的结果行上进行替换.

这样的事情是否存在:

select *, map(type, {1=>'abc', 2 => 'xyz'}) from orders
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

Symfony2 bootstrap.php.cache文件的用途是什么?

我在我们的一个遗留项目中使用SF2,而不是整个框架,而是通过引入我需要的捆绑包和组件.我一直想知道这些代码行:

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
Run Code Online (Sandbox Code Playgroud)

我想知道这个bootstrap.php.cache文件的用途是什么,它是什么,如何生成(如果我没有使用SF2整个框架).我之前没有使用它,并且没有问题,但我想知道这是否可以给我一些性能提升等我应该研究一下.我试图找到周围但找不到专门针对这个主题的文件.

caching symfony

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

好像我对CSRF的理解不正确?

在阅读了很多关于CSRF的文件后,我仍然有点困惑.所以我希望有人可以向我解释一下:

  1. 让我们说如果我有一个仅针对经过身份验证的用户的个人资料页面,请说abc.com/profile向我显示我的所有私人信息.如果我登录,然后转到"坏"网站,该网站可以以某种方式获取并解析我的个人资料页面吗?(我通过在另一个网站上打开firebug控制台做了一点经验,然后请求我的个人资料页面,看起来至少我可以在"网络"标签的"响应"中看到整个内容,还没想到然而,如何获取这些内容并解析它.但也许它可能吗?)

  2. 现在假设我的个人资料页面上有一个表单,当然它有csrf令牌.现在,如果攻击者可以获取我的profule页面,他可以解析该内容,获取令牌然后提交假表格?

  3. 现在假设1和2是正确的,我该怎么做才能防止这种情况发生?

csrf

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

多个站点的Elasticsearch(来源)

我们有大量的网站,因为这是我们第一次使用弹性搜索,我不知道应该如何配置ES:

  1. 我们想使用ES作为这些网站的唯一搜索引擎,我们是否应该为每个网站设置单独的ES实例?(我想这可能比仅仅一个ES需要更多的资源?)(另一方面,将所有站点的所有文档只放入1个ES实例会为每次搜索产生过多的开销吗?)
  2. 当我们进行搜索时,我们将仅在1个特定站点内搜索文档(并且会以某种方式阻止其他站点搜索不属于它们的文档)
  3. 如果可能的话,能够在所有站点上搜索文档是很好的,但不是必须的.

elasticsearch

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

我应该如何处理非常长的 URL?

我想知道这是否是一个错误,但现在我正在为我所有的搜索 URL 使用 GET。原因是使用 GET Url 用户可以简单地复制地址栏上的链接并轻松共享或保存。例如,Google 似乎也使用 GET Url(表单)。

由于它是一个带有过滤器、排序器的搜索表单,因此生成的 URL 的长度是不可预测的。我担心 URL 可能超过长度限制的边缘情况。可能的解决方案是实际发布数据,然后根据该数据生成唯一的哈希值,然后将其用作搜索的 URL。例如,此解决方案确实需要将实际的表单数据保存到数据库,然后在每个搜索请求上重新查询它,这似乎很浪费。

我想知道是否还有其他我没有想到的方法?

编辑:我想在这里感谢您的所有回答,他们帮了很多忙。我将在下面总结我为解决此问题所做的工作,希望对其他人有所帮助:

  1. 正如所指出的,如果 URL 太长(超过 2000 个字符),那么我可能做错了什么。所以我回去重新审视了我的算法,并设法将我必须通过 GET 字符串传递的信息减少了一半以上(以前,它很容易获得超过 500 个字符,这让我很担心)
  2. 我还对我的字符串进行了 jsonified。原因是深层嵌套数组在查询字符串上不能很好地工作,并且通过对数组进行 jsonifying 我实际上得到了一个更短且更易于阅读的结果
  3. 还有另一种解决方案,即编写自己的解析器,例如,如果您想获得更短的 url,您可以编写: category=1,2,3,4,5 并且因为您已经知道您可以执行的查询结构在你的后端解析。这需要更多的工作,所以我还没有尝试过,直到我真的必须这样做
  4. 我还没有尝试过散列/令牌路线,但我相信如果你真的必须处理大量输入,这也是一个很好的解决方案。您可以 POST 输入,然后发回一个哈希字符串标记以用作搜索 URL。

php http

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

使用 elasticsearch 按营业时间过滤搜索结果

我正在使用 elasticsearch 来索引和搜索位置,但我遇到了 1 个特定的按营业时间过滤的问题,我不知道如何解决

基本上,每个地点都有营业时间(一周中的每一天),每天可能有超过 1 个“套”的营业时间(我们现在使用 2 个)。

例如: 星期一:上午 9 点开/中午 12 点开班/下午 1 点开班/晚上 9 点关门

鉴于当前时间和当前日期,我需要搜索“开放”位置。

我不知道我应该如何将这些营业时间与位置详细信息一起编入索引,以及如何使用它们来过滤结果,任何帮助,建议将不胜感激

问候

time filtering elasticsearch

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

如何使用POEdit从特定域获取(可翻译)字符串

我已经尝试了几个小时找到设置POEdit的方法,以便它只能从特定域中获取文本

我的gettext函数如下所示:

function ri($id, $parameters = array(), $domain = 'default', $locale = null)
Run Code Online (Sandbox Code Playgroud)

一个样本电话:

echo ri('Text %xyz%', array('%xyz%'=>100), 'myDomain');
Run Code Online (Sandbox Code Playgroud)

我将只需要使用域myDomain来翻译文本,或者至少我希望POEdit将这些文本放入特定于域的文件中.有办法吗?

我发现了几个相似的问题,但答案并没有真正告诉我该怎么做(我想我是一个小菜,必须用简单的英语解释我才能理解):

如何在Poedit中设置gettext文本域?

如何获取可翻译消息列表

dns gettext poedit

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

Symfony2内核与HttpKernel

我正在尝试关注这篇文章:

http://fabien.potencier.org/article/62/create-your-own-framework-on-top-of-the-symfony2-components-part-12

另外看看HttpKernel https://github.com/symfony/HttpKernel

我很困惑.在我看来,该内核是真的东西比HttpKernel类更在这里,甚至标准Symfony的app.php

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();

//$kernel = new AppCache($kernel);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
Run Code Online (Sandbox Code Playgroud)

反过来,内核将无论如何调用HttpKernel->handle()内部$kernel->handle($request); 加上它似乎也照顾加载捆绑?

但是,当内核通过其boot()内部创建服务容器时handle(),也会编译容器,从而无法添加更多参数和服务.

所以我想我的问题是:

  1. 是否有任何具体原因在教程中Framework类扩展了HttpKernel而不是Kernel?
  2. 我也应该效仿吗?或者我应该使用内核作为我的核心.如果是这样,我该如何解决这个compile()问题呢?我有必须添加的参数和服务,我该如何处理?

kernel symfony

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

ReflectionException:类不存在

当我试图运行作曲家时,我遇到了这个错误

{
    "name": "zepluf/standard-edition",
    "description": "The \"ZePLUF Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": ">=2.1",
        "symfony/framework-bundle": ">=2.1",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.0.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.1.*",
        "symfony/monolog-bundle": "2.1.*",
        "sensio/distribution-bundle": "2.1.*",
        "sensio/framework-extra-bundle": "2.1.*",
        "sensio/generator-bundle": "2.1.*"
    },
    "scripts": {
        "post-install-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "minimum-stability": "dev",
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web"
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎某种方式传入了一个空类名,但我不太确定如何调试回溯以找到它的位置.

D:\Programming\xampp\htdocs\demo\zepluf>composer update --verbose
Loading composer repositories with …
Run Code Online (Sandbox Code Playgroud)

symfony composer-php

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

应该创建多个文档类型还是多个索引?

我们为企业托管了许多网站,每个企业都有许多可能希望通过ES进行索引和搜索的文档类型。

通常,每个企业拥有的文档类型数量少于20,每种类型的文档数量可能少于10万(通常少得多)。

我不确定如何设置这些网站的数据?我应该将它们放在单独的索引中,还是应该将它们全部塞入具有不同文档类型的同一索引中?还是还有其他东西?

也许,我什至应该更深入地索引中小型网站?如果计划扩展到5万个站点,应该准备哪些最坏的情况?

elasticsearch

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

标签 统计

elasticsearch ×3

symfony ×3

caching ×1

composer-php ×1

csrf ×1

dns ×1

filtering ×1

gettext ×1

http ×1

kernel ×1

mysql ×1

php ×1

poedit ×1

sql ×1

time ×1