Compare commits

..

No commits in common. "master" and "V4.1.1" have entirely different histories.

15 changed files with 192 additions and 301 deletions

12
.github/FUNDING.yml vendored
View File

@ -1,12 +0,0 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: querylist # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

1
.gitignore vendored
View File

@ -2,4 +2,3 @@
.idea/ .idea/
composer.lock composer.lock
.DS_Store .DS_Store
*.cache

View File

@ -29,7 +29,7 @@
- ..... - .....
## 环境要求 ## 环境要求
- PHP >= 7.1 - PHP >= 7.0
> 如果你的PHP版本还停留在PHP5或者不会使用Composer,你可以选择使用QueryList3,QueryList3支持php5.3以及手动安装。 > 如果你的PHP版本还停留在PHP5或者不会使用Composer,你可以选择使用QueryList3,QueryList3支持php5.3以及手动安装。
QueryList3 文档:http://v3.querylist.cc QueryList3 文档:http://v3.querylist.cc

View File

@ -31,7 +31,7 @@ Through plug-ins you can easily implement things like:
- ..... - .....
## Requirements ## Requirements
- PHP >= 7.1 - PHP >= 7.0
## Installation ## Installation
By Composer installation: By Composer installation:

View File

@ -4,11 +4,10 @@
"keywords":["QueryList","phpQuery","spider"], "keywords":["QueryList","phpQuery","spider"],
"homepage": "http://querylist.cc", "homepage": "http://querylist.cc",
"require": { "require": {
"PHP":">=7.1", "PHP":">=7.0",
"jaeger/phpquery-single": "^1", "jaeger/phpquery-single": "^1",
"jaeger/g-http": "^1.1", "tightenco/collect": "^5",
"ext-dom": "*", "jaeger/g-http": "^1.1"
"tightenco/collect": ">5.0"
}, },
"suggest":{ "suggest":{
@ -32,9 +31,6 @@
}, },
"require-dev": { "require-dev": {
"symfony/var-dumper": "^3.3", "symfony/var-dumper": "^3.3",
"phpunit/phpunit": "^8.5" "phpunit/phpunit": "^7.5"
},
"scripts": {
"test": "./vendor/bin/phpunit"
} }
} }

View File

@ -7,7 +7,6 @@
namespace QL; namespace QL;
use Closure; use Closure;
use Tightenco\Collect\Support\Collection;
class Config class Config
{ {
@ -21,8 +20,8 @@ class Config
*/ */
public function __construct() public function __construct()
{ {
$this->plugins = new Collection(); $this->plugins = collect();
$this->binds = new Collection(); $this->binds = collect();
} }

View File

@ -7,43 +7,41 @@
namespace QL\Dom; namespace QL\Dom;
use phpDocumentor\Reflection\Types\Null_;
use phpQueryObject; use phpQueryObject;
use Tightenco\Collect\Support\Collection;
/** /**
* Class Elements * Class Elements
* @package QL\Dom * @package QL\Dom
* *
* @method Elements toReference(&$var) * @method Elements toReference($var)
* @method Elements documentFragment($state = null) * @method documentFragment($state)
* @method Elements toRoot() * @method Elements toRoot()
* @method Elements getDocumentIDRef(&$documentID) * @method Elements getDocumentIDRef($documentID)
* @method Elements getDocument() * @method Elements getDocument()
* @method \DOMDocument getDOMDocument() * @method getDOMDocument()
* @method Elements getDocumentID() * @method Elements getDocumentID()
* @method Elements unloadDocument() * @method Elements unloadDocument()
* @method bool isHTML() * @method isHTML()
* @method bool isXHTML() * @method isXHTML()
* @method bool isXML() * @method isXML()
* @method string serialize() * @method serialize()
* @method array serializeArray($submit = null) * @method serializeArray($submit)
* @method \DOMElement|\DOMElement[] get($index = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method get($index,$callback1,$callback2,$callback3)
* @method string|array getString($index = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method getString($index,$callback1,$callback2,$callback3)
* @method string|array getStrings($index = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method getStrings($index,$callback1,$callback2,$callback3)
* @method Elements newInstance($newStack = null) * @method newInstance($newStack)
* @method Elements find($selectors, $context = null, $noHistory = false) * @method Elements find($selectors,$context,$noHistory)
* @method Elements|bool is($selector, $nodes = null) * @method Elements is($selector,$nodes)
* @method Elements filterCallback($callback, $_skipHistory = false) * @method Elements filterCallback($callback,$_skipHistory)
* @method Elements filter($selectors, $_skipHistory = false) * @method Elements filter($selectors,$_skipHistory)
* @method Elements load($url, $data = null, $callback = null) * @method load($url,$data,$callback)
* @method Elements trigger($type, $data = []) * @method Elements trigger($type,$data)
* @method Elements triggerHandler($type, $data = []) * @method Elements triggerHandler($type,$data)
* @method Elements bind($type, $data, $callback = null) * @method Elements bind($type,$data,$callback)
* @method Elements unbind($type = null, $callback = null) * @method unbind($type,$callback)
* @method Elements change($callback = null) * @method Elements change($callback)
* @method Elements submit($callback = null) * @method Elements submit($callback)
* @method Elements click($callback = null) * @method Elements click($callback)
* @method Elements wrapAllOld($wrapper) * @method Elements wrapAllOld($wrapper)
* @method Elements wrapAll($wrapper) * @method Elements wrapAll($wrapper)
* @method Elements wrapAllPHP($codeBefore,$codeAfter) * @method Elements wrapAllPHP($codeBefore,$codeAfter)
@ -53,26 +51,26 @@ use Tightenco\Collect\Support\Collection;
* @method Elements wrapInnerPHP($codeBefore,$codeAfter) * @method Elements wrapInnerPHP($codeBefore,$codeAfter)
* @method Elements contents() * @method Elements contents()
* @method Elements contentsUnwrap() * @method Elements contentsUnwrap()
* @method Elements switchWith($markup) * @method switchWith($markup)
* @method Elements eq($num) * @method Elements eq($num)
* @method Elements size() * @method Elements size()
* @method Elements length() * @method Elements length()
* @method int count() * @method count()
* @method Elements end($level = 1) * @method Elements end($level)
* @method Elements _clone() * @method Elements _clone()
* @method Elements replaceWithPHP($code) * @method Elements replaceWithPHP($code)
* @method Elements replaceWith($content) * @method Elements replaceWith($content)
* @method Elements replaceAll($selector) * @method Elements replaceAll($selector)
* @method Elements remove($selector = null) * @method Elements remove($selector)
* @method Elements|string markup($markup = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method markup($markup,$callback1,$callback2,$callback3)
* @method string markupOuter($callback1 = null, $callback2 = null, $callback3 = null) * @method markupOuter($callback1,$callback2,$callback3)
* @method Elements|string html($html = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method html($html,$callback1,$callback2,$callback3)
* @method Elements|string xml($xml = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method xml($xml,$callback1,$callback2,$callback3)
* @method string htmlOuter($callback1 = null, $callback2 = null, $callback3 = null) * @method htmlOuter($callback1,$callback2,$callback3)
* @method string xmlOuter($callback1 = null, $callback2 = null, $callback3 = null) * @method xmlOuter($callback1,$callback2,$callback3)
* @method Elements php($code) * @method Elements php($code)
* @method string markupPHP($code) * @method markupPHP($code)
* @method string markupOuterPHP() * @method markupOuterPHP()
* @method Elements children($selector) * @method Elements children($selector)
* @method Elements ancestors($selector) * @method Elements ancestors($selector)
* @method Elements append($content) * @method Elements append($content)
@ -88,51 +86,55 @@ use Tightenco\Collect\Support\Collection;
* @method Elements afterPHP($content) * @method Elements afterPHP($content)
* @method Elements insertAfter($seletor) * @method Elements insertAfter($seletor)
* @method Elements insert($target,$type) * @method Elements insert($target,$type)
* @method int index($subject) * @method index($subject)
* @method Elements slice($start, $end = null) * @method Elements slice($start,$end)
* @method Elements reverse() * @method Elements reverse()
* @method Elements|string text($text = null, $callback1 = null, $callback2 = null, $callback3 = null) * @method text($text,$callback1,$callback2,$callback3)
* @method Elements plugin($class, $file = null) * @method Elements plugin($class,$file)
* @method Elements _next($selector = null) * @method extend($class,$file)
* @method Elements _prev($selector = null) * @method Elements _next($selector)
* @method Elements prev($selector = null) * @method Elements _prev($selector)
* @method Elements prevAll($selector = null) * @method Elements prev($selector)
* @method Elements nextAll($selector = null) * @method Elements prevAll($selector)
* @method Elements siblings($selector = null) * @method Elements nextAll($selector)
* @method Elements not($selector = null) * @method Elements siblings($selector)
* @method Elements add($selector = null) * @method Elements not($selector)
* @method Elements parent($selector = null) * @method Elements add($selector)
* @method Elements parents($selector = null) * @method Elements parent($selector)
* @method Elements stack($nodeTypes = null) * @method Elements parents($selector)
* @method Elements|string attr($attr = null, $value = null) * @method stack($nodeTypes)
* @method attr($attr,$value)
* @method Elements attrPHP($attr,$code) * @method Elements attrPHP($attr,$code)
* @method Elements removeAttr($attr) * @method Elements removeAttr($attr)
* @method Elements|string val($val = null) * @method val($val)
* @method Elements andSelf() * @method Elements andSelf()
* @method Elements addClass($className) * @method Elements addClass($className)
* @method Elements addClassPHP($className) * @method Elements addClassPHP($className)
* @method bool hasClass($className) * @method hasClass($className)
* @method Elements removeClass($className) * @method Elements removeClass($className)
* @method Elements toggleClass($className) * @method Elements toggleClass($className)
* @method Elements _empty() * @method Elements _empty()
* @method Elements callback($callback, $param1 = null, $param2 = null, $param3 = null) * @method Elements each($callback,$param1,$param2,$param3)
* @method string data($key, $value = null) * @method Elements callback($callback,$param1,$param2,$param3)
* @method Elements removeData($key) * @method data($key,$value)
* @method void rewind() * @method removeData($key)
* @method Elements current() * @method rewind()
* @method int key() * @method current()
* @method Elements next($cssSelector = null) * @method key()
* @method bool valid() * @method Elements next($cssSelector)
* @method bool offsetExists($offset) * @method valid()
* @method Elements offsetGet($offset) * @method offsetExists($offset)
* @method void offsetSet($offset, $value) * @method offsetGet($offset)
* @method string whois($oneNode) * @method offsetSet($offset,$value)
* @method offsetUnset($offset)
* @method whois($oneNode)
* @method Elements dump() * @method Elements dump()
* @method Elements dumpWhois() * @method dumpWhois()
* @method Elements dumpLength() * @method dumpLength()
* @method Elements dumpTree($html, $title) * @method dumpTree($html,$title)
* @method dumpDie() * @method dumpDie()
*/ */
class Elements class Elements
{ {
/** /**
@ -165,34 +167,15 @@ class Elements
return $obj; return $obj;
} }
/**
* Iterating elements
*
* @param callable $callback
*
* @return $this
*/
public function each(callable $callback)
{
foreach ($this->elements as $key => $element) {
$break = $callback(new self(pq($element)), $key);
if ($break === false) {
break;
}
}
return $this;
}
/** /**
* Iterating elements * Iterating elements
* *
* @param $callback * @param $callback
* @return \Illuminate\Support\Collection|\Tightenco\Collect\Support\Collection * @return \Illuminate\Support\Collection
*/ */
public function map($callback) public function map($callback)
{ {
$collection = new Collection(); $collection = collect();
$this->elements->each(function($dom) use(& $collection,$callback){ $this->elements->each(function($dom) use(& $collection,$callback){
$collection->push($callback(new self(pq($dom)))); $collection->push($callback(new self(pq($dom))));
}); });
@ -202,8 +185,8 @@ class Elements
/** /**
* Gets the attributes of all the elements * Gets the attributes of all the elements
* *
* @param string $attr HTML attribute name * @param $attr HTML attribute name
* @return \Illuminate\Support\Collection|\Tightenco\Collect\Support\Collection * @return \Illuminate\Support\Collection
*/ */
public function attrs($attr) public function attrs($attr)
{ {
@ -215,7 +198,7 @@ class Elements
/** /**
* Gets the text of all the elements * Gets the text of all the elements
* *
* @return \Illuminate\Support\Collection|\Tightenco\Collect\Support\Collection * @return \Illuminate\Support\Collection
*/ */
public function texts() public function texts()
{ {
@ -227,7 +210,7 @@ class Elements
/** /**
* Gets the html of all the elements * Gets the html of all the elements
* *
* @return \Illuminate\Support\Collection|\Tightenco\Collect\Support\Collection * @return \Illuminate\Support\Collection
*/ */
public function htmls() public function htmls()
{ {
@ -236,19 +219,6 @@ class Elements
}); });
} }
/**
* Gets the htmlOuter of all the elements
*
* @return \Illuminate\Support\Collection|\Tightenco\Collect\Support\Collection
*/
public function htmlOuters()
{
return $this->map(function ($item) {
return trim($item->htmlOuter());
});
}
/** /**
* @return phpQueryObject * @return phpQueryObject
*/ */

View File

@ -9,16 +9,12 @@ namespace QL\Dom;
use Tightenco\Collect\Support\Collection; use Tightenco\Collect\Support\Collection;
use phpQuery; use phpQuery;
use phpQueryObject;
use QL\QueryList; use QL\QueryList;
use Closure; use Closure;
class Query class Query
{ {
protected $html; protected $html;
/**
* @var \phpQueryObject
*/
protected $document; protected $document;
protected $rules; protected $rules;
protected $range = null; protected $range = null;
@ -35,12 +31,11 @@ class Query
} }
/** /**
* @param bool $rel * @return mixed
* @return String
*/ */
public function getHtml($rel = true) public function getHtml()
{ {
return $rel ? $this->document->htmlOuter() : $this->html; return $this->html;
} }
/** /**
@ -51,7 +46,6 @@ class Query
public function setHtml($html, $charset = null) public function setHtml($html, $charset = null)
{ {
$this->html = value($html); $this->html = value($html);
$this->destroyDocument();
$this->document = phpQuery::newDocumentHTML($this->html,$charset); $this->document = phpQuery::newDocumentHTML($this->html,$charset);
return $this->ql; return $this->ql;
} }
@ -64,7 +58,7 @@ class Query
*/ */
public function getData(Closure $callback = null) public function getData(Closure $callback = null)
{ {
return $this->handleData($this->data, $callback); return is_null($callback) ? $this->data : $this->data->map($callback);
} }
/** /**
@ -125,8 +119,8 @@ class Query
*/ */
public function removeHead() public function removeHead()
{ {
$html = preg_replace('/(<head>|<head\s+.+?>).+?<\/head>/is', '<head></head>', $this->html); $html = preg_replace('/<head.+?>.+<\/head>/is','<head></head>',$this->html);
$html && $this->setHtml($html); $this->setHtml($html);
return $this->ql; return $this->ql;
} }
@ -139,102 +133,66 @@ class Query
public function query(Closure $callback = null) public function query(Closure $callback = null)
{ {
$this->data = $this->getList(); $this->data = $this->getList();
$this->data = $this->handleData($this->data, $callback); $callback && $this->data = $this->data->map($callback);
return $this->ql; return $this->ql;
} }
public function handleData(Collection $data, $callback)
{
if (is_callable($callback)) {
if (empty($this->range)) {
$data = new Collection($callback($data->all(), null));
} else {
$data = $data->map($callback);
}
}
return $data;
}
protected function getList() protected function getList()
{ {
$data = []; $data = [];
if (empty($this->range)) { if (!empty($this->range)) {
foreach ($this->rules as $key => $reg_value) { $robj = $this->document->find($this->range);
$rule = $this->parseRule($reg_value);
$contentElements = $this->document->find($rule['selector']);
$data[$key] = $this->extractContent($contentElements, $key, $rule);
}
} else {
$rangeElements = $this->document->find($this->range);
$i = 0; $i = 0;
foreach ($rangeElements as $element) { foreach ($robj as $item) {
foreach ($this->rules as $key => $reg_value){ foreach ($this->rules as $key => $reg_value){
$rule = $this->parseRule($reg_value); $tags = $reg_value[2] ?? '';
$contentElements = pq($element)->find($rule['selector']); $iobj = pq($item,$this->document)->find($reg_value[0]);
$data[$i][$key] = $this->extractContent($contentElements, $key, $rule); switch ($reg_value[1]) {
case 'text':
$data[$i][$key] = $this->allowTags(pq($iobj)->html(),$tags);
break;
case 'html':
$data[$i][$key] = $this->stripTags(pq($iobj)->html(),$tags);
break;
default:
$data[$i][$key] = pq($iobj)->attr($reg_value[1]);
break;
}
if(isset($reg_value[3])){
$data[$i][$key] = call_user_func($reg_value[3],$data[$i][$key],$key);
}
} }
$i++; $i++;
} }
} } else {
foreach ($this->rules as $key => $reg_value){
return new Collection($data); $tags = $reg_value[2] ?? '';
} $lobj = $this->document->find($reg_value[0]);
$i = 0;
protected function extractContent(phpQueryObject $pqObj, $ruleName, $rule) foreach ($lobj as $item) {
{ switch ($reg_value[1]) {
switch ($rule['attr']) {
case 'text': case 'text':
$content = $this->allowTags($pqObj->html(), $rule['filter_tags']); $data[$i][$key] = $this->allowTags(pq($item,$this->document)->html(),$tags);
break;
case 'texts':
$content = (new Elements($pqObj))->map(function (Elements $element) use ($rule) {
return $this->allowTags($element->html(), $rule['filter_tags']);
})->all();
break; break;
case 'html': case 'html':
$content = $this->stripTags($pqObj->html(), $rule['filter_tags']); $data[$i][$key] = $this->stripTags(pq($item,$this->document)->html(),$tags);
break;
case 'htmls':
$content = (new Elements($pqObj))->map(function (Elements $element) use ($rule) {
return $this->stripTags($element->html(), $rule['filter_tags']);
})->all();
break;
case 'htmlOuter':
$content = $this->stripTags($pqObj->htmlOuter(), $rule['filter_tags']);
break;
case 'htmlOuters':
$content = (new Elements($pqObj))->map(function (Elements $element) use ($rule) {
return $this->stripTags($element->htmlOuter(), $rule['filter_tags']);
})->all();
break; break;
default: default:
if(preg_match('/attr\((.+)\)/', $rule['attr'], $arr)) { $data[$i][$key] = pq($item,$this->document)->attr($reg_value[1]);
$content = $pqObj->attr($arr[1]);
} elseif (preg_match('/attrs\((.+)\)/', $rule['attr'], $arr)) {
$content = (new Elements($pqObj))->attrs($arr[1])->all();
} else {
$content = $pqObj->attr($rule['attr']);
}
break; break;
} }
if (is_callable($rule['handle_callback'])) { if(isset($reg_value[3])){
$content = call_user_func($rule['handle_callback'], $content, $ruleName); $data[$i][$key] = call_user_func($reg_value[3],$data[$i][$key],$key);
} }
return $content; $i++;
} }
}
protected function parseRule($rule) }
{ // phpQuery::$documents = array();
$result = []; return collect($data);
$result['selector'] = $rule[0];
$result['attr'] = $rule[1];
$result['filter_tags'] = $rule[2] ?? '';
$result['handle_callback'] = $rule[3] ?? null;
return $result;
} }
/** /**
@ -276,8 +234,10 @@ class Query
{ {
$tagArr = preg_split("/\s+/",$tags_str,-1,PREG_SPLIT_NO_EMPTY); $tagArr = preg_split("/\s+/",$tags_str,-1,PREG_SPLIT_NO_EMPTY);
$tags = array(array(),array()); $tags = array(array(),array());
foreach ($tagArr as $tag) { foreach($tagArr as $tag)
if (preg_match('/-(.+)/', $tag, $arr)) { {
if(preg_match('/-(.+)/', $tag,$arr))
{
array_push($tags[1], $arr[1]); array_push($tags[1], $arr[1]);
}else{ }else{
array_push($tags[0], $tag); array_push($tags[0], $tag);
@ -295,7 +255,8 @@ class Query
protected function removeTags($html,$tags) protected function removeTags($html,$tags)
{ {
$tag_str = ''; $tag_str = '';
if (count($tags)) { if(count($tags))
{
foreach ($tags as $tag) { foreach ($tags as $tag) {
$tag_str .= $tag_str?','.$tag:$tag; $tag_str .= $tag_str?','.$tag:$tag;
} }
@ -307,16 +268,4 @@ class Query
} }
return $html; return $html;
} }
protected function destroyDocument()
{
if ($this->document instanceof phpQueryObject) {
$this->document->unloadDocument();
}
}
public function __destruct()
{
$this->destroyDocument();
}
} }

View File

@ -14,7 +14,6 @@ use Closure;
use QL\Providers\HttpServiceProvider; use QL\Providers\HttpServiceProvider;
use QL\Providers\PluginServiceProvider; use QL\Providers\PluginServiceProvider;
use QL\Providers\SystemServiceProvider; use QL\Providers\SystemServiceProvider;
use Tightenco\Collect\Support\Collection;
class Kernel class Kernel
{ {
@ -35,7 +34,7 @@ class Kernel
public function __construct(QueryList $ql) public function __construct(QueryList $ql)
{ {
$this->ql = $ql; $this->ql = $ql;
$this->binds = new Collection(); $this->binds = collect();
} }
public function bootstrap() public function bootstrap()

View File

@ -23,7 +23,7 @@ use QL\Services\MultiRequestService;
* Class QueryList * Class QueryList
* @package QL * @package QL
* *
* @method string getHtml($rel = true) * @method string getHtml()
* @method QueryList setHtml($html) * @method QueryList setHtml($html)
* @method QueryList html($html) * @method QueryList html($html)
* @method Dom\Elements find($selector) * @method Dom\Elements find($selector)
@ -104,15 +104,6 @@ class QueryList
* Destruction of resources * Destruction of resources
*/ */
public function destruct() public function destruct()
{
unset($this->query);
unset($this->kernel);
}
/**
* Destroy all documents
*/
public static function destructDocuments()
{ {
phpQuery::$documents = []; phpQuery::$documents = [];
} }

View File

@ -17,7 +17,7 @@ class FindTest extends TestCaseBase
protected $html; protected $html;
protected $ql; protected $ql;
protected function setUp(): void public function setUp()
{ {
$this->html = $this->getSnippet('snippet-1'); $this->html = $this->getSnippet('snippet-1');
$this->ql = QueryList::html($this->html); $this->ql = QueryList::html($this->html);

View File

@ -18,7 +18,7 @@ class RulesTest extends TestCaseBase
protected $html; protected $html;
protected $ql; protected $ql;
protected function setUp(): void public function setUp()
{ {
$this->html = $this->getSnippet('snippet-2'); $this->html = $this->getSnippet('snippet-2');
$this->ql = QueryList::html($this->html); $this->ql = QueryList::html($this->html);

View File

@ -18,7 +18,7 @@ class HttpTest extends TestCaseBase
{ {
protected $urls; protected $urls;
protected function setUp(): void public function setUp()
{ {
$this->urls = [ $this->urls = [
'http://httpbin.org/get?name=php', 'http://httpbin.org/get?name=php',

View File

@ -16,7 +16,7 @@ class InstanceTest extends TestCaseBase
{ {
protected $html; protected $html;
protected function setUp(): void public function setUp()
{ {
$this->html = $this->getSnippet('snippet-1'); $this->html = $this->getSnippet('snippet-1');
} }
@ -38,11 +38,11 @@ class InstanceTest extends TestCaseBase
public function get_new_object() public function get_new_object()
{ {
$ql = (new QueryList())->html($this->html); $ql = (new QueryList())->html($this->html);
$ql2 = (new QueryList())->html(''); $ql2 = new QueryList();
$this->assertNotEquals($ql->getHtml(),$ql2->getHtml()); $this->assertNotEquals($ql->getHtml(),$ql2->getHtml());
$ql = QueryList::range('')->html($this->html); $ql = QueryList::range('')->html($this->html);
$ql2 = QueryList::range('')->html(''); $ql2 = QueryList::range('');
$this->assertNotEquals($ql->getHtml(),$ql2->getHtml()); $this->assertNotEquals($ql->getHtml(),$ql2->getHtml());
} }
} }

View File

@ -16,7 +16,7 @@ class MethodTest extends TestCaseBase
{ {
protected $html; protected $html;
protected function setUp(): void public function setUp()
{ {
$this->html = $this->getSnippet('snippet-1'); $this->html = $this->getSnippet('snippet-1');
} }
@ -30,7 +30,7 @@ class MethodTest extends TestCaseBase
$qlHtml = QueryList::pipe(function(QueryList $ql) use($html){ $qlHtml = QueryList::pipe(function(QueryList $ql) use($html){
$ql->setHtml($html); $ql->setHtml($html);
return $ql; return $ql;
})->getHtml(false); })->getHtml();
$this->assertEquals($html,$qlHtml); $this->assertEquals($html,$qlHtml);
} }
} }