1
0
Fork 0
forked from blallo/rss-bridge

[core] simplify dynamic formats discovery

Signed-off-by: Pierre Mazière <pierre.maziere@gmx.com>
This commit is contained in:
Pierre Mazière 2016-08-23 14:29:53 +02:00
parent 13285f080a
commit eb3392db82
6 changed files with 5 additions and 35 deletions

View file

@ -2,8 +2,6 @@
/**
* Atom
* Documentation Source http://en.wikipedia.org/wiki/Atom_%28standard%29 and http://tools.ietf.org/html/rfc4287
*
* @name Atom
*/
class AtomFormat extends FormatAbstract{

View file

@ -1,10 +1,4 @@
<?php
/**
* Html
* Documentation Source http://en.wikipedia.org/wiki/Atom_%28standard%29 and http://tools.ietf.org/html/rfc4287
*
* @name Html
*/
class HtmlFormat extends FormatAbstract{
public function stringify(){

View file

@ -2,8 +2,6 @@
/**
* Json
* Builds a JSON string from $this->items and return it to browser.
*
* @name Json
*/
class JsonFormat extends FormatAbstract{

View file

@ -2,8 +2,6 @@
/**
* Mrss
* Documentation Source http://www.rssboard.org/media-rss
*
* @name Media RSS
*/
class MrssFormat extends FormatAbstract{

View file

@ -2,8 +2,6 @@
/**
* Plaintext
* Returns $this->items as raw php data.
*
* @name Plaintext
*/
class PlaintextFormat extends FormatAbstract{

View file

@ -168,29 +168,13 @@ class Format{
$dirFiles = scandir($pathDirFormat);
if( $dirFiles !== false ){
foreach( $dirFiles as $fileName ){
if( preg_match('@([^.]+)\.php@U', $fileName, $out) ){ // Is PHP file ?
$infos = array(); // Information about the bridge
$resParse = token_get_all(file_get_contents($pathDirFormat . $fileName)); // Parse PHP file
foreach($resParse as $v){
if( is_array($v) && $v[0] == T_DOC_COMMENT ){ // Lexer node is COMMENT ?
$commentary = $v[1];
foreach( $searchCommonPattern as $name){ // Catch information with common pattern
preg_match('#@' . preg_quote($name, '#') . '\s+(.+)#', $commentary, $outComment);
if( isset($outComment[1]) ){
$infos[$name] = $outComment[1];
}
}
}
}
if( isset($infos['name']) ){ // If informations containt at least a name
$listFormat[$out[1]] = $infos;
}
}
foreach( $dirFiles as $fileName ){
if( preg_match('@^([^.]+)\.php$@U', $fileName, $out) ){ // Is PHP file ?
$listFormat[] = $out[1];
}
}
}
return $listFormat;
}
}
}