src/Facebook/InstantArticles/Transformer/Getters/FragmentGetter.php (28 lines of code) (raw):
<?php
/**
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
namespace Facebook\InstantArticles\Transformer\Getters;
use Facebook\InstantArticles\Validators\Type;
use Facebook\InstantArticles\Transformer\Transformer;
use Symfony\Component\CssSelector\CssSelectorConverter;
class FragmentGetter extends AbstractGetter
{
/**
* @var string
*/
protected $fragment;
public function createFrom($properties)
{
return $this->withFragment($properties['fragment']);
}
/**
* @param string $fragment
*
* @return $this
*/
public function withFragment($fragment)
{
Type::enforce($fragment, Type::STRING);
$this->fragment = $fragment;
return $this;
}
public function get($node)
{
$fragment = $node->ownerDocument->createDocumentFragment();
$is_valid_markup = @$fragment->appendXML($this->fragment);
if ($is_valid_markup) {
return $fragment;
}
return null;
}
}