Update PicoFeed

This commit is contained in:
Frederic Guillot 2016-02-09 20:30:07 -05:00
parent 78f9e7a2ae
commit f7b3bbd8e9
46 changed files with 392 additions and 119 deletions

View File

@ -14,7 +14,7 @@
"fguillot/simple-validator": "v1.0.0",
"fguillot/json-rpc": "v1.0.2",
"fguillot/picodb": "v1.0.2",
"fguillot/picofeed": "v0.1.17"
"fguillot/picofeed": "v0.1.18"
},
"require-dev": {
"phpunit/phpunit": "4.8.3",

View File

@ -116,27 +116,27 @@
},
{
"name": "zendframework/zendxml",
"version": "1.0.1",
"version_normalized": "1.0.1.0",
"version": "1.0.2",
"version_normalized": "1.0.2.0",
"source": {
"type": "git",
"url": "https://github.com/zendframework/ZendXml.git",
"reference": "54edb3875aba5b45f02824f65f311c9fb2743a38"
"reference": "7b64507bc35d841c9c5802d67f6f87ef8e1a58c9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/ZendXml/zipball/54edb3875aba5b45f02824f65f311c9fb2743a38",
"reference": "54edb3875aba5b45f02824f65f311c9fb2743a38",
"url": "https://api.github.com/repos/zendframework/ZendXml/zipball/7b64507bc35d841c9c5802d67f6f87ef8e1a58c9",
"reference": "7b64507bc35d841c9c5802d67f6f87ef8e1a58c9",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
"php": "^5.3.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "~3.7",
"squizlabs/php_codesniffer": "~1.5"
"phpunit/phpunit": "^3.7 || ^4.0",
"squizlabs/php_codesniffer": "^1.5"
},
"time": "2015-08-03 14:50:10",
"time": "2016-02-04 21:02:08",
"type": "library",
"extra": {
"branch-alias": {
@ -163,17 +163,17 @@
},
{
"name": "fguillot/picofeed",
"version": "v0.1.17",
"version_normalized": "0.1.17.0",
"version": "v0.1.18",
"version_normalized": "0.1.18.0",
"source": {
"type": "git",
"url": "https://github.com/fguillot/picoFeed.git",
"reference": "6249abdd8a7070388d5257d93552b33424018a76"
"reference": "8f776343b0dada397c2a950a7c3f7be57442fa35"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/fguillot/picoFeed/zipball/6249abdd8a7070388d5257d93552b33424018a76",
"reference": "6249abdd8a7070388d5257d93552b33424018a76",
"url": "https://api.github.com/repos/fguillot/picoFeed/zipball/8f776343b0dada397c2a950a7c3f7be57442fa35",
"reference": "8f776343b0dada397c2a950a7c3f7be57442fa35",
"shasum": ""
},
"require": {
@ -188,7 +188,7 @@
"suggest": {
"ext-curl": "PicoFeed will use cURL if present"
},
"time": "2016-01-11 17:22:24",
"time": "2016-02-09 02:49:54",
"bin": [
"picofeed"
],

View File

@ -129,6 +129,8 @@ class Attribute
'https://player.vimeo.com',
'http://www.dailymotion.com',
'https://www.dailymotion.com',
'http://vk.com',
'https://vk.com',
);
/**

View File

@ -5,16 +5,17 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.aljazeera.com/news/2015/09/xi-jinping-seattle-china-150922230118373.html',
'body' => array(
'//figure[@class="article-content"]',
'//div[@class="article-body"]',
'//figure[@class="article-content"]',
'//div[@class="article-body"]',
),
'strip' => array(
'//h1',
'//h3',
'//ul',
'//a[@target="_self"]',
'//div[@data-embed-type="Brightcove"]',
'//div[@class="QuoteContainer"]',
'//h1',
'//h3',
'//ul',
'//table[contains(@class, "in-article-item")]',
'//a[@target="_self"]',
'//div[@data-embed-type="Brightcove"]',
'//div[@class="QuoteContainer"]',
),
),
),

View File

@ -1,9 +0,0 @@
<?php
return array(
'filter' => array(
'%.*%' => array(
'%href="http://www.channelate.com/(\\d+)/(\\d+)/(\\d+)/[^"]*"%' => 'href="http://www.channelate.com/extra-panel/$1$2$3/"',
),
),
);

View File

@ -8,6 +8,7 @@ return array(
'//div[contains(@class, "entry-content")]',
),
'strip' => array(
'//div[@class="dmcss_login_form"]',
'//*[contains(@class, "sharedaddy")]',
),
),

View File

@ -0,0 +1,12 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'body' => array(
'//img[@class="img-responsive img-comic"]',
),
'test_url' => 'http://dilbert.com/strip/2016-01-28',
),
),
);

View File

@ -0,0 +1,19 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://fossbytes.com/fbi-hacked-1000-computers-to-shut-down-largest-child-pornography-site-on-the-dark-web/',
'body' => array(
'//div[@class="entry-inner"]',
),
'strip' => array(
'//*[@class="at-above-post addthis_default_style addthis_toolbox at-wordpress-hide"]',
'//*[@class="at-below-post addthis_default_style addthis_toolbox at-wordpress-hide"]',
'//*[@class="at-below-post-recommended addthis_default_style addthis_toolbox at-wordpress-hide"]',
'//*[@class="code-block code-block-12 ai-desktop"]',
'//*[@class="code-block code-block-13 ai-tablet-phone"]',
),
),
),
);

View File

@ -0,0 +1,13 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'body' => array(
'//div[@id="comic-1"]',
'//div[@class="entry"]',
),
'test_url' => 'http://gerbilwithajetpack.com/passing-the-digital-buck/',
),
),
);

View File

@ -0,0 +1,12 @@
<?php
return array(
'grabber' => array(
'%/joyoftech/.*%' => array(
'body' => array(
'//img[@width="640"]',
),
'test_url' => 'http://www.geekculture.com/joyoftech/joyarchives/2235.html',
),
),
);

View File

@ -4,7 +4,13 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.koreatimes.co.kr/www/news/nation/2015/12/116_192409.html',
'body' => '//div[@class="view_page_news_article_wrapper"]',
'body' => array(
'//div[@id="p"]',
),
'strip' => array(
'//script',
'//div[@id="webtalks_btn_listenDiv"]',
),
),
),
);

View File

@ -4,9 +4,11 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.linux.org/threads/lua-the-scripting-interpreter.8352/',
'body' => '//div[@class="messageContent"]',
'body' => array(
'//div[@class="messageContent"]',
),
'strip' => array(
'//aside',
'//aside',
),
),
),

View File

@ -4,10 +4,12 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.linuxinsider.com/story/82526.html?rss=1',
'body' => '//div[@id="story"]',
'body' => array(
'//div[@id="story"]',
),
'strip' => array(
'//script',
'//h1]',
'//h1',
'//div[@id="story-toolbox1"]',
'//div[@id="story-byline"]',
'//div[@id="story"]/p',

View File

@ -5,15 +5,15 @@ return array(
'%.*%' => array(
'test_url' => 'http://m.brewers.mlb.com/news/article/161364798',
'body' => array(
'//article',
'//article',
),
'strip' => array(
'//div[@class="article-top"]',
'//div[contains(@class, "contributor-bottom")]',
'//p[@class="tagline"]',
'//div[contains(@class, "social-")]',
'//div[@class="button-wrap"]',
'//div[@class="article-top"]',
'//div[contains(@class, "contributor-bottom")]',
'//p[@class="tagline"]',
'//div[contains(@class, "social-")]',
'//div[@class="button-wrap"]',
),
),
),
),
);

View File

@ -0,0 +1,17 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'https://www.muckrock.com/news/archives/2016/jan/13/5-concerns-private-prisons/',
'body' => array(
'//div[@class="content"]',
),
'strip' => array(
'//h1',
'//div[@class="secondary"]',
'//aside',
),
),
),
);

View File

@ -0,0 +1,16 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.nationaljournal.com/s/354962/south-carolina-evangelicals-outstrip-establishment?mref=home_top_main',
'body' => array(
'//div[@class="section-body"]',
),
'strip' => array(
'//*[contains(@class, "-related")]',
'//*[contains(@class, "social")]',
),
),
),
);

View File

@ -1,20 +1,13 @@
<?php
return array(
'grabber' => array(
'http://dx.doi.org/10.1038.*%' => array(
'test_url' => 'http://dx.doi.org/10.1038/525184a',
'body' => array(
'//div[@class="content "]',
),
'strip' => array()
),
'%.*%' => array(
'test_url' => 'http://www.nature.com/doifinder/10.1038/nature.2015.18340',
'body' => array(
'//div[contains(@class,"main-content")]',
),
'strip' => array()
'strip' => array(),
),
)
),
);

View File

@ -0,0 +1,16 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://onhax.net/process-lasso-8-9-1-4-pro-key-portable-is-here-latest',
'body' => array(
'//div[@class="postcontent"]',
),
'strip' => array(
'//*[@class="sharedaddy sd-sharing-enabled"]',
'//*[@class="yarpp-related"]',
),
),
),
);

View File

@ -4,13 +4,15 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://onmilwaukee.com/movies/articles/downerspelunking.html',
'body' => '//article[@class="show"]',
'body' => array(
'//article[contains(@class, "show")]',
),
'strip' => array(
'//h1',
'//div[contains(@class, "-ad")]',
'//div[contains(@class, "_ad")]',
'//div[@id="pub_wrapper"]',
'//div[@class="share_tools"]',
'//div[contains(@class, "share_tools")]',
'//div[@class="clearfix"]',
'//div[contains(@class,"image_control")]',
'//section[@class="ribboned"]',

View File

@ -13,6 +13,7 @@ return array(
'//script',
'//div[contains(@class,"sharedaddy")]',
'//div[@class="post-send-off"]',
'//div[@class="large-12 columns"]',
'//div[contains(@class,"inner-related-article")]',
),
),

View File

@ -4,7 +4,9 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.securityfocus.com/news/11569?ref=rss',
'body' => '//div[@class="expanded"]',
'body' => array(
'//div[@class="expanded"]',
),
),
),
);

View File

@ -4,7 +4,9 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.soundandvision.com/content/james-guthrie-mixing-roger-waters-and-pink-floyd-51',
'body' => '//div[@id="left"]',
'body' => array(
'//div[@id="left"]',
),
'strip' => array(
'//div[@class="meta"]',
'//div[@class="ratingsbox"]',

View File

@ -5,7 +5,7 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.stereophile.com/content/2015-rocky-mountain-audio-fest-starts-friday',
'body' => array(
'//div[@class="content clear-block"]',
'//div[@class="content clear-block"]',
),
),
),

View File

@ -5,7 +5,7 @@ return array(
'%.*%' => array(
'test_url' => 'http://blog.the-ebook-reader.com/2015/09/25/kobo-glo-hd-and-kobo-touch-2-0-covers-and-cases-roundup/',
'body' => array(
'//div[@class="entry"]',
'//div[@class="entry"]',
),
),
),

View File

@ -5,18 +5,18 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.theatlantic.com/politics/archive/2015/09/what-does-it-mean-to-lament-the-poor-inside-panem/407317/',
'body' => array(
'//picture[@class="img"]',
'//figure/figcaption/span',
'//div/p[@itemprop="description"]',
'//div[@class="article-body"]',
'//picture[@class="img"]',
'//figure/figcaption/span',
'//div/p[@itemprop="description"]',
'//div[@class="article-body"]',
),
'strip' => array(
'//aside[@class="callout"]',
'//span[@class="credit"]',
'//figcaption[@class="credit"]',
'//aside[contains(@class,"partner-box")]',
'//div[contains(@class,"ad")]',
'//a[contains(@class,"social-icon")]',
'//aside[@class="callout"]',
'//span[@class="credit"]',
'//figcaption[@class="credit"]',
'//aside[contains(@class,"partner-box")]',
'//div[contains(@class,"ad")]',
'//a[contains(@class,"social-icon")]',
),
),
),

View File

@ -8,7 +8,7 @@ return array(
'//div[@class="entry"]',
),
'strip' => array(),
'test_url' => 'http://sentfromthemoon.com/archives/1417',
'test_url' => 'http://thedoghousediaries.com/6023',
),
),
'filter' => array(

View File

@ -5,15 +5,15 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.thehindu.com/sci-tech/science/why-is-the-shape-of-cells-in-a-honeycomb-always-hexagonal/article7692306.ece?utm_source=RSS_Feed&utm_medium=RSS&utm_campaign=RSS_Syndication',
'body' => array(
'//div/img[@class="main-image"]',
'//div[@class="photo-caption"]',
'//div[@class="articleLead"]',
'//p',
'//span[@class="upper"]',
'//div/img[@class="main-image"]',
'//div[@class="photo-caption"]',
'//div[@class="articleLead"]',
'//p',
'//span[@class="upper"]',
),
'strip' => array(
'//div[@id="articleKeywords"]',
'//div[@class="photo-source"]',
'//div[@id="articleKeywords"]',
'//div[@class="photo-source"]',
),
),
),

View File

@ -5,14 +5,14 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.themoscowtimes.com/business/article/535500.html',
'body' => array(
'//div[@class="article_main_img"]',
'//div[@class="article_text"]',
'//div[@class="article_main_img"]',
'//div[@class="article_text"]',
),
'strip' => array(
'//div[@class="articlebottom"]',
'//p/b',
'//p/a[contains(@href, "/article.php?id=")]',
'//div[@class="disqus_wrap"]',
'//div[@class="articlebottom"]',
'//p/b',
'//p/a[contains(@href, "/article.php?id=")]',
'//div[@class="disqus_wrap"]',
),
),
),

View File

@ -5,7 +5,7 @@ return array(
'%.*%' => array(
'test_url' => 'http://international.thenewslens.com/post/255032/',
'body' => array(
'//article/main[contains(@class, "content-post")]',
'//article/main[contains(@class, "content-post")]',
),
'strip' => array(
'//div[@class="photo-credit"]',

View File

@ -0,0 +1,9 @@
<?php
return array(
'filter' => array(
'%.*%' => array(
'%-150x150%' => '',
),
),
);

View File

@ -5,8 +5,8 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.theonion.com/article/wild-eyed-jim-harbaugh-informs-players-they-must-k-51397?utm_medium=RSS&utm_campaign=feeds',
'body' => array(
'//div[@class="content-masthead"]/figure/div/noscript/img',
'//div[@class="content-text"]',
'//div[@class="content-masthead"]/figure/div/noscript/img',
'//div[@class="content-text"]',
),
),
),

View File

@ -4,7 +4,9 @@ return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.thestandard.com.hk/breaking_news_detail.asp?id=67156',
'body' => '//div[contains(@class,"storyBody")]',
'body' => array(
'//table/tr/td/span[@class="bodyCopy"]',
),
'strip' => array(
'//script',
'//br',

View File

@ -3,9 +3,10 @@
return array(
'grabber' => array(
'%.*%' => array(
'body' => array('//img[@id="cc-comic"]'),
'strip' => array(),
'test_url' => 'http://www.threepanelsoul.com/comic/subjective-tastes',
'body' => array(
'//img[@id="cc-comic"]',
),
'test_url' => 'http://www.threepanelsoul.com/comic/uncloaking',
),
),
);

View File

@ -0,0 +1,15 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://timesofindia.indiatimes.com/city/mangaluru/Adani-UPCL-to-release-CSR-grant-of-Rs-3-74-crore-to-YellurGram-Panchayat/articleshow/50512116.cms',
'body' => array(
'//div[@class="article_content clearfix"]',
'//section[@class="highlight clearfix"]',
),
'strip' => array(
),
),
),
);

View File

@ -5,11 +5,11 @@ return array(
'%.*%' => array(
'test_url' => 'http://www.upi.com/Top_News/US/2015/09/26/Tech-giants-Hollywood-stars-among-guests-at-state-dinner-for-Chinas-Xi-Jinping/4541443281006/',
'body' => array(
'//div[@class="img"]',
'//div/article[@itemprop="articleBody"]',
'//div[@class="img"]',
'//div/article[@itemprop="articleBody"]',
),
'strip' => array(
'//div[@align="center"]',
'//div[@align="center"]',
),
),
),

View File

@ -10,14 +10,14 @@ return array(
),
'strip' => array(
'//form',
'//div[@id="headline"]',
'//div[@id="headline"]',
'//*[@class="warning"]',
'//span[@class="off-screen"]',
'//span[@class="story-image-copyright"]',
'//ul[@class="story-body__unordered-list"]',
'//div[@class="ad_wrapper"]',
'//div[@id="article-sidebar"]',
'//div[@class="data-table-outer"]',
'//div[@class="data-table-outer"]',
'//*[@class="story-date"]',
'//*[@class="story-header"]',
'//figure[contains(@class,"has-caption")]',

View File

@ -0,0 +1,24 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.bgr.in/news/xiaomi-redmi-3-with-13-megapixel-camera-snapdragon-616-launched-price-specifications-and-features/',
'body' => array(
'//div[@class="article-content"]',
),
'strip' => array(
'//*[@class="article-meta"]',
'//*[@class="contentAdsense300"]',
'//*[@class="iwpl-social-hide"]',
'//iframe[@class="iframeads"]',
'//*[@class="disqus_thread"]',
'//*[@class="outb-mobile OUTBRAIN"]',
'//*[@class="wdt_smart_alerts"]',
'//*[@class="footnote"]',
'//*[@id="gadget-widget"]',
'//header[@class="article-title entry-header"]',
),
),
),
);

View File

@ -0,0 +1,18 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.fakingnews.firstpost.com/2016/01/engineering-student-creates-record-in-a-decade-becomes-the-first-to-completely-exhaust-ball-pen-refill/',
'body' => array(
'//div[@class="entry"]',
),
'strip' => array(
'//*[@class="socialshare_bar"]',
'//*[@class="authorbox"]',
'//*[@class="cf5_rps"]',
'//*[@class="60563 fb-comments fb-social-plugin"]',
),
),
),
);

View File

@ -0,0 +1,15 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.howtogeek.com/235283/what-is-a-wireless-hard-drive-and-should-i-get-one/',
'body' => array(
'//div[@class="thecontent"]',
),
'strip' => array(
'//*[@class="relatedside"]',
),
),
),
);

View File

@ -0,0 +1,19 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.makeuseof.com/tag/having-problems-with-audio-in-windows-10-heres-a-likely-fix/',
'body' => array(
'//div[@class="entry"]',
),
'strip' => array(
'//*[@class="new_sharebar"]',
'//*[@class="author"]',
'//*[@class="wdt_grouvi"]',
'//*[@class="wdt_smart_alerts"]',
'//*[@class="modal fade grouvi"]',
),
),
),
);

View File

@ -10,6 +10,7 @@ return array(
'strip' => array(
'//*[@class="bucket img"]',
'//*[@class="creditwrap"]',
'//div[@class="credit-caption"]',
'//*[@class="credit"]',
'//*[@class="captionwrap"]',
'//*[@class="toggle-caption"]',

View File

@ -0,0 +1,15 @@
<?php
return array(
'grabber' => array(
'%.*%' => array(
'test_url' => 'http://www.oneindia.com/india/b-luru-govt-likely-remove-word-eunuch-from-sec-36-a-karnataka-police-act-1981173.html',
'body' => array(
'//div[@class="ecom-ad-content"]',
),
'strip' => array(
'//*[@id="view_cmtns"]',
),
),
),
);

View File

@ -5,19 +5,19 @@ return array(
'%.*%' => array(
'test_url' => 'http://zdnet.com.feedsportal.com/c/35462/f/675637/s/4a33c93e/sc/11/l/0L0Szdnet0N0Carticle0Cchina0Eus0Eagree0Eon0Ecybercrime0Ecooperation0Eamid0Econtinued0Etension0C0Tftag0FRSSbaffb68/story01.htm',
'body' => array(
'//p[@class="summary"]',
'//div[contains(@class,"storyBody")]',
'//p[@class="summary"]',
'//div[contains(@class,"storyBody")]',
),
'strip' => array(
'//*[contains(@class,"ad-")]',
'//p/span',
'//script',
'//p[@class="summary"]',
'//div[contains(@class,"relatedContent")]',
'//div[contains(@class,"loader")]',
'//p[@class="photoDetails"]',
'//div[@class="thumbnailSlider"]',
'//div[@class="shortcodeGalleryWrapper"]',
'//*[contains(@class,"ad-")]',
'//p/span',
'//script',
'//p[@class="summary"]',
'//div[contains(@class,"relatedContent")]',
'//div[contains(@class,"loader")]',
'//p[@class="photoDetails"]',
'//div[@class="thumbnailSlider"]',
'//div[@class="shortcodeGalleryWrapper"]',
),
),
),

View File

@ -1,22 +1,42 @@
sudo: false
language: php
php:
- 5.3
- 5.4
- 5.5
- 5.6
- hhvm
branches:
except:
- /^release-.*$/
- /^ghgfk-.*$/
cache:
directories:
- $HOME/.composer/cache
matrix:
allow_failures:
- php: hhvm
matrix:
fast_finish: true
include:
- php: 5.3
- php: 5.4
- php: 5.5
env:
- EXECUTE_CS_CHECK=true
- php: 5.6
- php: 7
- php: hhvm
allow_failures:
- php: hhvm
before_script:
before_install:
- composer self-update
- composer install --dev
install:
- travis_retry composer install --no-interaction --ignore-platform-reqs
script:
- ./vendor/bin/phpunit -c ./tests
- ./vendor/bin/phpcs --standard=PSR2 --ignore=tests/Bootstrap.php library tests
- if [[ $EXECUTE_CS_CHECK == 'true' ]]; then ./vendor/bin/phpcs --standard=PSR2 --ignore=tests/Bootstrap.php library tests ; fi
notifications:
irc: "irc.freenode.org#zftalk.dev"

View File

@ -0,0 +1,24 @@
# Changelog
All notable changes to this project will be documented in this file, in reverse chronological order by release.
## 1.0.2 - 2016-02-04
### Added
- Nothing.
### Deprecated
- Nothing.
### Removed
- Nothing.
### Fixed
- [#11](https://github.com/zendframework/ZendXml/pull/11) updates the
dependencies to PHP `^5.3.3 || ^7.0` and PHPUnit `^3.7 || ^4.0`, ensuring
better compatibility with other components, and with PHP 7. The test matrix
was also expanded to add PHP 7 as a required platform.

View File

@ -26,7 +26,7 @@
}
],
"require": {
"php": ">=5.3.3"
"php": "^5.3.3 || ^7.0"
},
"extra": {
"branch-alias": {
@ -34,7 +34,7 @@
}
},
"require-dev": {
"phpunit/phpunit": "~3.7",
"squizlabs/php_codesniffer": "~1.5"
"phpunit/phpunit": "^3.7 || ^4.0",
"squizlabs/php_codesniffer": "^1.5"
}
}