<?php
+
+namespace Shaarli\Feed;
/**
* Simple cache system, mainly for the RSS/ATOM feeds
*/
{
// TODO: check write access to the cache directory
$this->cacheDir = $cacheDir;
- $this->filename = $this->cacheDir.'/'.sha1($url).'.cache';
+ $this->filename = $this->cacheDir . '/' . sha1($url) . '.cache';
$this->shouldBeCached = $shouldBeCached;
}
<?php
+namespace Shaarli\Feed;
+
+use DateTime;
+use LinkDB;
/**
* FeedBuilder class.
protected $feedType;
/**
- * @var array $_SERVER.
+ * @var array $_SERVER
*/
protected $serverInfo;
/**
- * @var array $_GET.
+ * @var array $_GET
*/
protected $userInput;
/**
* Feed constructor.
*
- * @param LinkDB $linkDB LinkDB instance.
- * @param string $feedType Type of feed.
- * @param array $serverInfo $_SERVER.
- * @param array $userInput $_GET.
+ * @param LinkDB $linkDB LinkDB instance.
+ * @param string $feedType Type of feed.
+ * @param array $serverInfo $_SERVER.
+ * @param array $userInput $_GET.
* @param boolean $isLoggedIn True if the user is currently logged in, false otherwise.
*/
public function __construct($linkDB, $feedType, $serverInfo, $userInput, $isLoggedIn)
$data['show_dates'] = !$this->hideDates || $this->isLoggedIn;
// Remove leading slash from REQUEST_URI.
$data['self_link'] = escape(server_url($this->serverInfo))
- . escape($this->serverInfo['REQUEST_URI']);
+ . escape($this->serverInfo['REQUEST_URI']);
$data['index_url'] = $pageaddr;
$data['usepermalinks'] = $this->usePermalinks === true;
$data['links'] = $linkDisplayed;
*/
protected function buildItem($link, $pageaddr)
{
- $link['guid'] = $pageaddr .'?'. $link['shorturl'];
+ $link['guid'] = $pageaddr . '?' . $link['shorturl'];
// Check for both signs of a note: starting with ? and 7 chars long.
if ($link['url'][0] === '?' && strlen($link['url']) === 7) {
$link['url'] = $pageaddr . $link['url'];
}
if ($this->usePermalinks === true) {
- $permalink = '<a href="'. $link['url'] .'" title="'. t('Direct link') .'">'. t('Direct link') .'</a>';
+ $permalink = '<a href="' . $link['url'] . '" title="' . t('Direct link') . '">' . t('Direct link') . '</a>';
} else {
- $permalink = '<a href="'. $link['guid'] .'" title="'. t('Permalink') .'">'. t('Permalink') .'</a>';
+ $permalink = '<a href="' . $link['guid'] . '" title="' . t('Permalink') . '">' . t('Permalink') . '</a>';
}
- $link['description'] = format_description($link['description'], '', false, $pageaddr);
- $link['description'] .= PHP_EOL .'<br>— '. $permalink;
+ $link['description'] = format_description($link['description'], '', false, $pageaddr);
+ $link['description'] .= PHP_EOL . '<br>— ' . $permalink;
$pubDate = $link['created'];
$link['pub_iso_date'] = $this->getIsoDate($pubDate);
$link['up_iso_date'] = $this->getIsoDate($upDate, DateTime::ATOM);
} else {
$link['up_iso_date'] = $this->getIsoDate($pubDate, DateTime::ATOM);
- ;
}
// Save the more recent item.
public function getTypeLanguage()
{
// Use the locale do define the language, if available.
- if (! empty($this->locale) && preg_match('/^\w{2}[_\-]\w{2}/', $this->locale)) {
- $length = ($this->feedType == self::$FEED_RSS) ? 5 : 2;
+ if (!empty($this->locale) && preg_match('/^\w{2}[_\-]\w{2}/', $this->locale)) {
+ $length = ($this->feedType === self::$FEED_RSS) ? 5 : 2;
return str_replace('_', '-', substr($this->locale, 0, $length));
}
- return ($this->feedType == self::$FEED_RSS) ? 'en-en' : 'en';
+ return ($this->feedType === self::$FEED_RSS) ? 'en-en' : 'en';
}
/**
}
$intNb = intval($this->userInput['nb']);
- if (! is_int($intNb) || $intNb == 0) {
+ if (!is_int($intNb) || $intNb == 0) {
return self::$DEFAULT_NB_LINKS;
}
"Shaarli\\Config\\": "application/config/",
"Shaarli\\Config\\Exception\\": "application/config/exception",
"Shaarli\\Exceptions\\": "application/exceptions",
+ "Shaarli\\Feed\\": "application/feed",
"Shaarli\\Security\\": "application/security"
}
}
// Shaarli library
require_once 'application/ApplicationUtils.php';
-require_once 'application/Cache.php';
-require_once 'application/CachedPage.php';
require_once 'application/config/ConfigPlugin.php';
-require_once 'application/FeedBuilder.php';
+require_once 'application/feed/Cache.php';
require_once 'application/FileUtils.php';
require_once 'application/History.php';
require_once 'application/HttpUtils.php';
require_once 'application/Router.php';
require_once 'application/Updater.php';
use \Shaarli\Config\ConfigManager;
-use Shaarli\History;
+use \Shaarli\Feed\CachedPage;
+use \Shaarli\Feed\FeedBuilder;
+use \Shaarli\History;
use \Shaarli\Languages;
use \Shaarli\Security\LoginManager;
use \Shaarli\Security\SessionManager;
use pubsubhubbub\publisher\Publisher;
use Shaarli\Config\ConfigManager;
+use Shaarli\Feed\FeedBuilder;
/**
* Plugin init function - set the hub to the default appspot one.
* Link datastore tests
*/
-use Shaarli\Exceptions\IOException;
-
-require_once 'application/Cache.php';
+require_once 'application/feed/Cache.php';
require_once 'application/FileUtils.php';
require_once 'application/LinkDB.php';
require_once 'application/Utils.php';
/**
* Cache tests
*/
+namespace Shaarli\Feed;
// required to access $_SESSION array
session_start();
-require_once 'application/Cache.php';
+require_once 'application/feed/Cache.php';
/**
* Unitary tests for cached pages
*/
-class CacheTest extends PHPUnit_Framework_TestCase
+class CacheTest extends \PHPUnit\Framework\TestCase
{
// test cache directory
protected static $testCacheDir = 'sandbox/dummycache';
*/
public function setUp()
{
- if (! is_dir(self::$testCacheDir)) {
+ if (!is_dir(self::$testCacheDir)) {
mkdir(self::$testCacheDir);
} else {
- array_map('unlink', glob(self::$testCacheDir.'/*'));
+ array_map('unlink', glob(self::$testCacheDir . '/*'));
}
foreach (self::$pages as $page) {
- file_put_contents(self::$testCacheDir.'/'.$page.'.cache', $page);
+ file_put_contents(self::$testCacheDir . '/' . $page . '.cache', $page);
}
- file_put_contents(self::$testCacheDir.'/intru.der', 'ShouldNotBeThere');
+ file_put_contents(self::$testCacheDir . '/intru.der', 'ShouldNotBeThere');
}
/**
*/
public function tearDown()
{
- array_map('unlink', glob(self::$testCacheDir.'/*'));
+ array_map('unlink', glob(self::$testCacheDir . '/*'));
rmdir(self::$testCacheDir);
}
{
purgeCachedPages(self::$testCacheDir);
foreach (self::$pages as $page) {
- $this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache');
+ $this->assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache');
}
- $this->assertFileExists(self::$testCacheDir.'/intru.der');
+ $this->assertFileExists(self::$testCacheDir . '/intru.der');
}
/**
ini_set('error_log', '/dev/null');
$this->assertEquals(
'Cannot purge sandbox/dummycache_missing: no directory',
- purgeCachedPages(self::$testCacheDir.'_missing')
+ purgeCachedPages(self::$testCacheDir . '_missing')
);
ini_set('error_log', $oldlog);
}
invalidateCaches(self::$testCacheDir);
foreach (self::$pages as $page) {
- $this->assertFileNotExists(self::$testCacheDir.'/'.$page.'.cache');
+ $this->assertFileNotExists(self::$testCacheDir . '/' . $page . '.cache');
}
$this->assertArrayNotHasKey('tags', $_SESSION);
/**
* PageCache tests
*/
-
-require_once 'application/CachedPage.php';
+namespace Shaarli\Feed;
/**
* Unitary tests for cached pages
*/
-class CachedPageTest extends PHPUnit_Framework_TestCase
+class CachedPageTest extends \PHPUnit\Framework\TestCase
{
// test cache directory
protected static $testCacheDir = 'sandbox/pagecache';
*/
public static function setUpBeforeClass()
{
- if (! is_dir(self::$testCacheDir)) {
+ if (!is_dir(self::$testCacheDir)) {
mkdir(self::$testCacheDir);
}
- self::$filename = self::$testCacheDir.'/'.sha1(self::$url).'.cache';
+ self::$filename = self::$testCacheDir . '/' . sha1(self::$url) . '.cache';
}
/**
<?php
-require_once 'application/FeedBuilder.php';
+namespace Shaarli\Feed;
+
+use DateTime;
+use LinkDB;
+use ReferenceLinkDB;
+
require_once 'application/LinkDB.php';
/**
*
* Unit tests for FeedBuilder.
*/
-class FeedBuilderTest extends PHPUnit_Framework_TestCase
+class FeedBuilderTest extends \PHPUnit\Framework\TestCase
{
/**
* @var string locale Basque (Spain).
$this->assertEquals('http://host.tld/?WDWyig', $link['url']);
$this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $link['pub_iso_date']);
$pub = DateTime::createFromFormat(DateTime::RSS, $link['pub_iso_date']);
- $up = DateTime::createFromFormat(DateTime::ATOM, $link['up_iso_date']);
+ $up = DateTime::createFromFormat(DateTime::ATOM, $link['up_iso_date']);
$this->assertEquals($pub, $up);
$this->assertContains('Stallman has a beard', $link['description']);
$this->assertContains('Permalink', $link['description']);