小编Fab*_*les的帖子

不要使用Symfony序列化程序显示null元素

所以我有很多我想用Symfony序列化程序序列化的类.例如

class Foo
{
  public $apple = 1;
  public $pear = null;

  public function serialize() {
    Utils::serialize($this);
  }
}
Run Code Online (Sandbox Code Playgroud)

我通过以下serialize()调用序列化:

class Utils {
    public static function serialize($object) {
      $encoder = new XmlEncoder();
      $normalizer = new ObjectNormalizer();
      $serializer = new Serializer(array($normalizer), array($encoder));
      $str = $serializer->serialize($object, 'xml')
    }
}
Run Code Online (Sandbox Code Playgroud)

产生的输出给了我:

<apple>1</apple><pear/>
Run Code Online (Sandbox Code Playgroud)

预期的输出应为:

<apple>1</apple>
Run Code Online (Sandbox Code Playgroud)

我看了一下Symfony 2.8 doc,并设法通过使用找到了一个快速的解决方案$normalizer->setIgnoredAttributes("pear").

所以改进的序列化静态函数看起来像这样

class Utils {
  public static function ignoreNullAttributes($object) {
    $ignored_attributes = array();
    foreach($object as $member => $value) {
      if (is_null($object->$member)) …
Run Code Online (Sandbox Code Playgroud)

php xml serialization symfony

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

我应该在 docker-compose 文件中使用次要版本吗?

有时,我只在 docker-compose.yml 文件中看到主要版本,例如version: '3'. 其他时候,我还可以看到次要版本,例如version: '3.7'

我没有找到任何最佳实践。

是只指定主要版本并更灵活更好,还是将格式固定为次要版本并更严格?

version docker docker-compose

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

标签 统计

docker ×1

docker-compose ×1

php ×1

serialization ×1

symfony ×1

version ×1

xml ×1