小编LBA*_*LBA的帖子

FileReader - 支持哪些编码?

想要将用户输入的文件作为文本进行简单读取.

可以依赖于现代浏览器的使用,所以我使用FileReader(它就像一个魅力).

reader.readAsText(myfile, encoding);
Run Code Online (Sandbox Code Playgroud)

我知道encoding默认为UTF-8.

但是,由于我的用户将从各种来源(Windows,Mac,Linux)和各种浏览器上传文件,我要求用户通过选择框提供编码.

因此,例如对于西欧的Windows文本文件,我希望用户选择例如windows-1252.

我无法找到FileReader支持的编码列表(假设这至少取决于浏览器).

我不是要求自动确定编码,我只是想以这样的方式填充我的选择框:

<select id="encoding">
   <option value="windows-1252">Windows (Western Latin)</option>
   <option value="utf-8">UTF-8</option>
   <option value="...">...</option>
</select>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 我在哪里可以获得支持的编码列表来填充选项值?
  2. 如何确定这些值的确切写入(是'utf8'还是'UTF-8'还是......)并且取决于操作系统/浏览器?
  3. 如果不支持编码,readAsText(myfile,unsupportedEncoding)是否会抛出任何错误?

我不想使用任何主要的第三方库.

奖金问题:

有没有一种简单的方法来获得有意义的价值翻译,例如cp10029意味着Mac(中欧)

javascript html5 encoding filereader

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

试图理解和实现Symfony 3 Caching for Framework和Doctrine

我们有一个基于Symfony 3.2(当时以Symfony 2.3开始)和Doctrine ORM 2.5的运行应用程序,它的发展方式非常棒.

我读了很多关于新的Symfony Cache组件,APC和APCU的up和down,opcache,Symfony中的chaching请求等等......但是老实说这次你失去了我一点.

所以我很想知道是否可以支持我1)理解和2)在生产中实现"标准"Symfony/Doctrine应用程序的缓存.

前提条件/假设

1)opcache应该被启用并激活并缓存任何与字节码相关的内容.

2)我目前没有任何要求缓存我自己的应用程序的东西.这些都是关于框架缓存的,如注释,类映射,验证,ORM元数据等.

2)大多数开发人员不想处理多个缓存提供程序,所以无论是APCu,xcache,redis,memcache还是其他任何东西.可能有很好的理由为不同的任务设置不同的任务,但让我们坚持一个以保持简单.

在prod模式下的"标准"Symfony/Doctrine应用程序中缓存选项

1)班级装载

我们仍然有ApcClassLoader app.php:

$loader = require __DIR__ . '/../app/autoload.php';
include_once __DIR__ . '/../var/bootstrap.php.cache';

$apcLoader = new ApcClassLoader('arcsf2', $loader);
$apcLoader->register(true);
$loader->unregister();

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

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

根据我的理解,Symfony只有两个选项,ApcClassLoader和XcacheClassLoader.所以这可能与上面的假设2相矛盾.

题:

是否仍需要/需要/表现得更好才能使用这种缓存ClassLoaders?

或者现在使用标准app.php就够了吗?

$loader = require __DIR__.'/../app/autoload.php';
include_once __DIR__.'/../var/bootstrap.php.cache';

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

2)验证缓存

我们仍然有这个config_prod.yml:

framework:
validation:
    cache: validator.mapping.cache.doctrine.apc
Run Code Online (Sandbox Code Playgroud)

题:

老实说,我不知道这是否仍然适用于Symfony 3.2和新的Cache组件.如果需要,如何将其更改为不同的缓存提供程序.我怎么能用Symfony 3.2 Cache将它改成'最新'?

3)Doctrine …

symfony doctrine-orm

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

无法运行Cloudfoundry任务 - 意外响应404

通过cf成功推送我的应用程序后,我通常需要手动ssh-log进入容器并执行几个PHP脚本来清除和预热我的缓存,可能会执行一些数据库架构更新等.

今天我发现了Cloudfoundry Tasks,它似乎提供了一种很好的方式来完成这类事情,我想测试它是否可以将它集成到我的构建和部署脚本中.

所以使用cf登录,成功连接到正确的组织和空间,app已被推送并且正在运行,我尝试了这个命令:

cf run-task MYAPP "bin/console doctrine:schema:update --dump-sql --env=prod" --name dumpsql

(尝试了几个文件夹更改,如app/bin/console等)

这是输出:

Creating task for app MYAPP in org MYORG / space MYSPACE as me@myemail...
Unexpected Response
Response Code: 404 FAILED

使用CF CLI:6.32.0

cf logs ArcticTenTestBackend --recent 没有输出任何东西(这可能是这种情况,因为我已经启用了一个ELK实例进行日志记录 - 因为我想服务连接到ELK查找日志我发现服务连接器cf插件已经消失了我将会开一张新票).

为此创建了新的问题:https://github.com/cloudfoundry/cli/issues/1242

cloud-foundry swisscomdev

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

将AngularJs 1.5升级到1.6 - 哪些精确绑定受$ compile reg控制器实例的更改影响?

从AngularJs 1.5升级到1.6状态时,$ compile中的更改的文档:

默认情况下禁用对组件/指令控制器实例的预分配绑定,这意味着它们将不再在构造函数内可用.

- AngularJS开发人员指南 - 迁移到V1.6 - $ compile

文档中的升级示例如下(缩写):

之前

.component('myComponent', {
  bindings: {value: '<'},
  controller: function() {
    //...
  }
})
Run Code Online (Sandbox Code Playgroud)

.component('myComponent', {
  bindings: {value: '<'},
  controller: function() {
    this.$onInit = function() {
      // ...
    };
  }
})
Run Code Online (Sandbox Code Playgroud)

我已经发现我必须使用相同的$ onInit函数为任何使用bindToController的指令:true就像这里:

.directive('acAllocation', acAllocation);

  function acAllocation(SomeService) {
    return {
      restrict: 'E',
      replace: true,
      scope: {
        allocation: '=acAllocation'
      },
      controller: acAllocationController,
      controllerAs: 'vm',
      bindToController: true,
      templateUrl: 'path/acAllocation.html'
    };

    function acAllocationController() { …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-components angularjs-1.6

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

Symfony 中可选属性的验证

我喜欢将 Symfony 中的验证注释与我的巨大实体模型一起使用,如下所示:

/**
 * @var string
 * @ORM\Column(type="string", length=255, nullable=false, name="name")
 *
 * @Assert\NotBlank(message="Name must not be empty")
 * @Assert\Length(min=2, minMessage="Name must be at least 2 characters long",max=255, maxMessage="Name must not be longer than 255 characters")
 */
private $name;
Run Code Online (Sandbox Code Playgroud)

这将确保“名称”永远不会为空、空白或具有 <2 或 > 255 个字符。

但是,当假设有一个类似的字段(例如description)适用相同的规则但它是一个可选属性时,如何实现这一点?

我知道我可以编写回调函数,具有自定义约束等等……但这将迫使我为所有现有的验证器(NotBlank、Length、Number、Valid aso)创建我自己的逻辑。

我会寻找类似的东西:

/**
 * @var string
 * @ORM\Column(type="string", length=255, nullable=true, name="description")
 *
 * @OptionalAssert\NotBlank(message="Name must not be empty")
 * @OptionalAssert\Length(min=2, minMessage="Name must be at least 2 characters long",max=255, maxMessage="Name must …
Run Code Online (Sandbox Code Playgroud)

php symfony

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

在 Web 应用程序中绘制有向无环图 - 只有奇怪的方法可用吗?

我们目前正在构建一个Web 应用程序 (AngularJS),它需要根据动态创建的数据绘制有向无环图(最多 1000 个节点,最多 10000 条边)。

一年多以来,我一直在寻找一个库/工具,它可以计算所需的布局并绘制可以设计样式、缩放和平移、交互式的图表(例如,在鼠标悬停时突出显示子项)。

Graphviz是产生最佳结果的工具,但它还没有真正准备好在网络服务器上使用(特别是因为我无法保证操作系统并且不想这样做)。

我尝试了dagre,它是d3 渲染- 我非常喜欢它,但它有两个主要缺点:1)它并不真正支持排名和聚类 - 这使得输出相当混乱;2)随着图形变得越来越大,其性能也会下降越来越令人无法接受。

接下来看起来真正令人信服的是cytoscape.js,因为输出看起来非常好,并且绘制更大的图形相当快(并允许进行一些性能调整)。但它的标准布局(例如 cose 或宽度优先)不会产生我们需要的输出。

从我目前的角度来看,有两个机会:

1) 使用dagre.js创建布局并使用cytoscape.js绘制结果(布局:“预设”,使用 dagre 布局中计算的节点 x 和 y)。但不支持这种方式的“化合物”/簇。

2)使用[viz.js]https://github.com/mdaines/viz.js)(Graphviz的一个emscripted Javascript版本,在绘制图表时再次表现不佳)将结果计算为简单的输出格式和再次使用这个结果用cytoscape.js绘制它。

现在我的问题:

1)您还有其他想法如何实现它吗?

2)如果我的想法是正确的,你能给我一些关于如何理想地链接链条的提示吗?

(AngularJS -> REST 后端 -> JSON 到前端 -> 为 dagre 或 viz 重构 JSON -> 计算布局 -> 将结果输入到 cytoscape -> 在浏览器中渲染?!?)并且有机会在我的上进行布局计算Node.js 前端服务器而不是客户端本身(同样是由于性能)?

任何提示和想法都受到高度赞赏。

javascript graph graphviz cytoscape.js dagre

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

DateTime 对象的严格比较

我正在对对象列表进行严格比较,只是为了识别可能已更改的对象,例如:

if ($oldValue !== $newValue)
Run Code Online (Sandbox Code Playgroud)

在某些情况下,$oldValue并且$newValueDateTime对象。

调试我的应用程序在比较它们之前,我得到了以下两个值的输出:

日期时间对象([日期] => 2017-04-24 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC)

日期时间对象([日期] => 2017-04-24 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC)

为什么我的比较/条件仍然正确?

php datetime object comparison-operators

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

AngularJs 1.x中的绑定 - 它们在哪里使用?

我们在传统的AngularJs应用程序中遇到了一个旧的重大变化,我们不会很快更新到Angular> 2.

由于AngularJs 1.6 默认$compileProvider.preAssignBindingsEnabled设置为" true ",但是可以选择将其设置为" false ".

使用AngularJs 1.7不再允许这种行为.

因此,我们必须检查我们在组件/指令中使用绑定的位置,以使用新的$ onInit函数,该函数在所有绑定可用时调用.

因为我们不使用.component.directive仅限于:

是真的,我们只需对所有正在使用的指令应用此更改bindToController: true吗?

或者其他案例可能被迫考虑?

更新澄清:

  1. 我知道我们必须更改/升级以使其工作以及原因.
  2. 我并不完全理解(并且在建议的副本中也没有看到它):当根本不使用组件时,这种变化会对我们产生什么影响?只有当我们使用bindToController指令时才是真的,或者是否存在其他指针(可能不那么直观,比如在特定方式/上下文中使用$ scope等).从阅读升级说明我们只获得了组件示例.

angularjs

5
推荐指数
0
解决办法
112
查看次数

在 Symfony 3.2 中根据 config.yml 使用 TagAwareAdapter?

我知道我可以在 Symfony 3.2 中定义缓存,就像在 config.yml 中一样:

    cache:
    default_redis_provider: redis://%redis_password%@%redis_host%:%redis_port%
    pools:
        my_redis_cache:
            adapter: cache.adapter.redis
            public: true
            default_lifetime: 1200
            provider: cache.default_redis_provider
Run Code Online (Sandbox Code Playgroud)

例如在我的控制器中我可以简单地使用

$cache = $this->get('my_redis_cache');
Run Code Online (Sandbox Code Playgroud)

现在,从 Symfony 3.2 开始,我们有了一个名为TagAwareAdapter的奇妙新功能- 它允许通过标签使缓存失效。

这是通过以下代码完成的:

$cache = new TagAwareAdapter(
// Adapter for cached items
new FilesystemAdapter(),
// Adapter for tags
new RedisAdapter('redis://localhost')
);
Run Code Online (Sandbox Code Playgroud)

但我可以在 config.yml 中定义它吗?

我正在寻找类似的东西:

    cache:
    default_redis_provider: redis://%redis_password%@%redis_host%:%redis_port%
    pools:
        my_redis_cache:
            adapter: cache.adapter.redis
            public: true
            default_lifetime: 1200
            provider: cache.default_redis_provider
        my_tag_aware_cache:
            adapter: cache.adapter.tagawareadapter
            provider:
                - my_file_cache
                - my_redis_cache
Run Code Online (Sandbox Code Playgroud)

但我不知道如何定义它 - 我已经玩尝试和错误有一段时间了 - 到目前为止我得到的只是错误。

php symfony

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

如何在AngularJS中定义错误回调?

在我的Controller:

function login(credentials) {
  AuthService
    .login(credentials)
    .then(successCallback, errorCallback);
    //same issue with .then(successCallback).catch(errorCallback);
}

function successCallback() {
  // do something after success
}

function errorCallback(data) {
  // do something after error
}
Run Code Online (Sandbox Code Playgroud)

在我的AuthService:

authService.login = function (credentials) {
  return $http
    .post(ENV.apiEndpoint + 'api/v1/login_check', credentials)
    .then(
       function (result) {
        Session.create(result.data.token, result.data.data);
       },
       function (data) {
        Messages.create('Login failed: ' + data.statusText);
       }
    );
}
Run Code Online (Sandbox Code Playgroud)

当我POST发送200响应代码时,一切按预期do something after success执行.

但是当我的POST结果例如在401中我可以看到Messages.create被调用(所以在这种情况下它进入error路径),但不幸的是我的控制器调用successCallback而不是errorCallback. …

javascript promise angularjs angularjs-1.6

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