{"id":19675822,"url":"https://github.com/progerxp/feeder","last_synced_at":"2025-04-29T02:30:42.852Z","repository":{"id":3256017,"uuid":"4294175","full_name":"ProgerXP/Feeder","owner":"ProgerXP","description":"Standalone module to generate standards-compliant RSS 0.92, 2.0 and Atom feeds from a single data source. Via Composer and Laravel 3 bundle.","archived":false,"fork":false,"pushed_at":"2014-03-16T21:23:50.000Z","size":246,"stargazers_count":16,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-05T12:42:03.293Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://proger.i-forge.net/PHP_Feeder/7sg","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProgerXP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-05-11T07:19:10.000Z","updated_at":"2024-07-19T13:52:27.000Z","dependencies_parsed_at":"2022-08-17T22:05:14.671Z","dependency_job_id":null,"html_url":"https://github.com/ProgerXP/Feeder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgerXP%2FFeeder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgerXP%2FFeeder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgerXP%2FFeeder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgerXP%2FFeeder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProgerXP","download_url":"https://codeload.github.com/ProgerXP/Feeder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251420888,"owners_count":21586697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T17:26:01.029Z","updated_at":"2025-04-29T02:30:42.006Z","avatar_url":"https://github.com/ProgerXP.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Feeder\n\nThis bundle  lets you generate **RSS 2.0**, **RSS 0.92** and **Atom** feeds by just setting the data you want - and __Feeder__ will take care of mapping it to the target standard-specific output. All __Feeder__ scripts are in public domain and require PHP 5+.\n\n[Sample generated feeds, detailed API and description](http://proger.i-forge.net/PHP_Feeder/7sg) | [Laravel bundle](http://bundles.laravel.com/bundle/detail/feeder) | [Forum thread](http://forums.laravel.com/viewtopic.php?id=1160)\n\nIt's used in real action on Laravel.ru's article feed: [RSS 2.0](http://laravel.ru/feed/articles/rss20) | [RSS 0.92](http://laravel.ru/feed/articles/rss092) | [Atom](http://laravel.ru/feed/articles/atom) [all three are generated using the code almost identical to the example below].\n\n### Features\nBefore creating this I have [dug through](http://proger.i-forge.net/Syndication_formats_%E2%80%93_RSS_0_92_2_0_-amp_Atom_1_0/7Zf) every bit in those specifications (RSS 2.0, 0.92 and Atom) so it should be pretty complete.\n\n- Pretty output with indentation\n- W3C Validation passed for all 3 formats\n- Unicode-aware\n- You can generate feeds from YAML text files without coding anything - [details](http://proger.i-forge.net/PHP_Feeder/7sg#textfeeder)\n\n### Example\n```PHP\n$feed = Feed::make();\n\n$feed-\u003elogo(asset('logo.png'))\n     -\u003eicon(URL::home().'favicon.ico')\n     -\u003ewebmaster('Proger_XP proger.xp@gmail.com http://i-forge.net/me')\n     -\u003eauthor   ('Proger_XP proger.xp@gmail.com http://i-forge.net/me')\n     -\u003erating('SFW')\n     -\u003epubdate(time())\n     -\u003ettl(60)\n     -\u003etitle('My feed')\n     -\u003edescription('Sample feed generated by PHP Feeder.')\n     -\u003ecopyright('(c) '.date('Y').' Example.com')\n     -\u003epermalink(route('feed', 'rss20'))\n     -\u003ecategory('PHP')\n     -\u003elanguage('ru_RU')\n     -\u003ebaseurl(URL::home());\n\nforeach ($posts as $post) {\n  $feed-\u003eentry()-\u003epublished($post['published'])\n                -\u003edescription()-\u003eadd('html', $post['synopsis'])-\u003eup()\n                -\u003etitle($post['title'])\n                -\u003epermalink($post['url'])\n                -\u003eauthor($post['author'])\n                -\u003eupdated($post['posted']);\n}\n\n$feed-\u003esend('rss20');\n// this is a shortcut for calling $feed-\u003efeed()-\u003esend(...);\n// you can also just $feed-\u003eRss20(), Rss092() or Atom();\n```\n\n### Installation\n\n#### Composer\n\nAvailable under `proger/feeder` at [Packagist](https://packagist.org/packages/proger/feeder).\n\n#### Laravel 3\n\n```\nphp artisan bundle:install feeder\n```\n\n`example-*.php` and `smile.png` files are only samples and are not required for work.\n`.htaccess` and `entry.php` are only used if you're using __TextFeeder__.\n`chained.php` is only used if you're using chained calls (like in the example above). `feeder.php` is the core set of classes that is self-contained.\n\n**application/bundles.php**:\n```PHP\n'feeder' =\u003e array(\n  // when the bundle is started all Feeder classes are automatically loaded\n  // so you can either autostart it or have autoloader mappings (more efficient).\n  //'auto' =\u003e true,\n\n  'autoloads' =\u003e array(\n    'map' =\u003e array(\n      'Feed' =\u003e '(:bundle)/chained.php',\n\n      'FeedChannel' =\u003e '(:bundle)/feeder.php',\n      'FeedEntry' =\u003e '(:bundle)/feeder.php',\n      'Feeder' =\u003e '(:bundle)/feeder.php',\n      'TextFeeder' =\u003e '(:bundle)/feeder.php',\n      'FeedOut' =\u003e '(:bundle)/feeder.php',\n    ),\n  ),\n),\n```\n\nThe list of autoloader mappings depends on your application - if you're just using chained calls (as in the example above) you only need the first **Feed =\u003e chained** mapping; otherwise you might want to autostart the bundle if you're unsure. You can also define [IoC containers](http://laravel.com/docs/ioc) for starting the bundle when it's used.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogerxp%2Ffeeder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogerxp%2Ffeeder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogerxp%2Ffeeder/lists"}