小编gre*_*emo的帖子

如何控制json_encode行为?

有没有办法控制json_encode对象的行为?像排除空数组,空字段等?

我的意思是在使用时serialize(),您可以在其中实现魔术__sleep()方法并指定应序列化的属性:

class MyClass
{
   public $yes   = "I should be encoded/serialized!";
   public $empty = array(); // // Do not encode me!
   public $null  = null; // Do not encode me!

   public function __sleep() { return array('yes'); }
}

$obj = new MyClass();
var_dump(json_encode($obj));
Run Code Online (Sandbox Code Playgroud)

php serialization json object

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

无法关闭与Node.js的MongoDB连接?

似乎我无法使用Node.js本机驱动程序关闭MongoDB连接.当我运行node replica.js脚本永远不会结束,因此由于某种原因无法关闭连接.

这是代码.这是一个副本集,但我不认为这是一个问题:

var mongodb = require('mongodb')
  , Db      = mongodb.Db
  , Server  = mongodb.Server
  , ReplSet = mongodb.ReplSet;

// Replica set
var replSet = new ReplSet( [
    new Server('localhost', 27017), // Primary
    new Server('localhost', 27018), // Secondary
    new Server('localhost', 27016), // Secondary
  ],
  { rs_name: 'replica', read_secondary: true }
);

var db = new Db('test', replSet, { native_parser: true, w: 1 });

// Opening
db.open(function (err, db) {
    if (err) console.error(err);

    db.close();
});
Run Code Online (Sandbox Code Playgroud)

连接到单个mongod实例工作正常,连接关闭,脚本结束,无需(由robertklep建议)process.exit()调用:

var …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js

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

PHP好日志库?

是否有任何好的日志库用于PHP的消息,警告和错误鞭打?AFAIK error_log仅用于记录错误,但我还需要存储调试消息.

并且应该使用CLI.谢谢

php logging php-5.3

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

Multipart/alternative子类型,当客户端使用它时?

为什么网络邮件(如Gmail)使用multipart/alternative子类型(在使用HTML编写时)发送MIME邮件,而其他人则将HTML作为MIME发送,其中包含text/html部分(不使用其他子类型)?

email mime content-type

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

如何正确解析PHP中的整数?

我可以使用intval,但根据文档:

尽管这取决于字符串最左边的字符,但字符串很可能会返回0.整数投射的通用规则适用.

...并且要解析的值可以是0,即我无法区分零和a string.

$value1 = '0';
$value2 = '15';
$value3 = 'foo'; // Should throw an exeption
Run Code Online (Sandbox Code Playgroud)

真正的问题是:我如何解析字符串并区分一个string强制转换0为零和一个零本身?

php int casting

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

browserify如何使Node.js模块在浏览器中工作?

我真的无法理解背后的一些工作browserify.使用纯JavaScript模块时,将其转换为浏览器代码似乎"很容易",即使有很多依赖项.

browserify做得更多:

许多不执行IO的npm模块在浏览后会正常工作.其他人需要更多的工作

许多节点内置模块已被包装在浏览器中,但只有在您明确require()或使用其功能时才能使用.

当您需要()任何这些模块时,您将获得特定于浏览器的垫片.

然后再次:

  • process.nextTick(),__ dirname和__filename node-isms工作
  • 当你需要()时,获取节点核心库事件,流,路径,url,断言,缓冲区,util,querystring,http,vm和crypto的浏览器版本

那么...... process.nextTick(),__dirname在浏览器中......甚至http?这对我来说没有意义...... __dirname应该如何在浏览器中工作?

javascript node.js npm browserify

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

Angular UI路由器,如何从控制器获取当前状态的祖先列表?

我的州等级是(从上到下):

  1. root
  2. account
  3. account.invoices
  4. account.invoices.detail

当我在 account.invoices.detail州时,我想得到一个祖先状态列表:

angular
    .module('app')
    .controller('InvoiceDetailCtrl', ['$scope', '$state', function ($scope, $state) {
        var current = $state.current.name;
        // Get ancestors from current state
        // Tried $state.current.parent, $state.parent, $state.parent(current)
    }]);
Run Code Online (Sandbox Code Playgroud)

Angular UI路由器允许您转换到父状态(即从视图中data-ui-sref="^"),因此应该可以实现这一点(跟随祖先的链root).

我需要这个来构建类似auto-breadcrumbs的功能.

编辑:由于接受的答案,最终得到了这个:

var current = $scope.$state.$current,
     parent = current.parent,
     ancestors = [current.name];

while (typeof parent != 'undefined' && parent.name.length) {
    ancestors.push(parent.name);
    parent = parent.parent;
}
Run Code Online (Sandbox Code Playgroud)

如果你问为什么检查parent.name.length它,因为在Angular UI中有类似"root"状态(无法获得任何文档).

angularjs angular-ui angular-ui-router

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

在Doctrine 2 ORM中命名关系?

如何使用YAML为多对一关系"region" 设置外键的名称(编辑:不是属性本身的名称)?

SWA\TestBundle\Entity\Province:
  type: entity
  table: province
  uniqueConstraints:
    UNIQUE_PROVINCE_CODE:
      columns: code
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    code:
      type: integer
    name:
      type: string
      length: 255
    short_name:
      type: string
      length: 2
  manyToOne:
    region:
      targetEntity: Region
      inversedBy: provinces
Run Code Online (Sandbox Code Playgroud)

yaml doctrine symfony doctrine-orm

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

手动更新Symfony2 deps文件以获取Doctrine 2.2?

是否可以手动更新deps文件以获取最新版本的Doctrine 2.2?我想使用新的Paginator组件.所以基本上我想调整deps:

[doctrine-common]
    git=http://github.com/doctrine/common.git
    version=2.2.1

[doctrine-dbal]
    git=http://github.com/doctrine/dbal.git
    version=2.2.1

[doctrine]
    git=http://github.com/doctrine/doctrine2.git
    version=2.2.1
Run Code Online (Sandbox Code Playgroud)

删除deps.lock并执行:

php bin/vendors update
Run Code Online (Sandbox Code Playgroud)

你觉得那会有用吗?

编辑:文件看起来像这样:http://pastebin.com/FEDMNhii

pagination symfony doctrine-orm

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

为什么对于某些 docker 镜像,CTRL+C 不会终止“docker run”命令?

使用此图像(Caddy 网络服务器):

docker run --rm -p 80:80 caddy:latest 
Run Code Online (Sandbox Code Playgroud)

我可以通过在终端内发送 CTRL+C来阻止它。

其他一些图像不会以这种方式工作,例如 MariaDB:

docker run -it --rm -p 3306:3306 -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:latest
Run Code Online (Sandbox Code Playgroud)

我无法用 CTRL+C 停止它

我注意到在 Caddy 中Dockerfile没有butENTRYPOINT only CMD,而 MariaDB 有 anENTRYPOINT和 a CMD

为什么?有什么理由不支持终止信号的处理吗SIGTERM如果这是原因的话,如何支持docker 入口点呢?

docker

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