Skip to main content

Overzicht

revolution/laravel-fullfeed is een Laravel-pakket dat de hoofdtekst van webpagina’s extraheert voor feedreaders.
Met regels per site (JSON) haal je per artikel precies de inhoud op die je nodig hebt.
Deze functionaliteit werd oorspronkelijk gebruikt in een privéfeedreader-app en is later als openbaar pakket uitgebracht.

Vereisten

  • PHP >= 8.4 (gebruikt Dom\HTMLDocument)
  • Laravel >= 12.x

Installatie

Als je de ontwikkelversie wilt gebruiken:

Configuratiebestand en sitedefinities publiceren

Dit commando maakt het volgende aan.
  • config/fullfeed.php
  • resources/fullfeed

Definitiebestanden automatisch bijwerken (composer post-update-cmd)

Als je de sitedefinities automatisch opnieuw wilt publiceren bij composer update, voeg dan het volgende toe aan composer.json.

Basisgebruik

Testen

Met FullFeed::expects() kun je de facade stubben.

Siteregelbestanden

items_all.json

items_all.json is de basis voor het importeren van regels in het LDRFullFeed-formaat (wedata).
Livedoor Reader was een bekende dienst in Japan, maar de dienst zelf is gestopt; wat vooral overblijft is de regeldata als erfgoed. FullFeed maakt gebruik van dit historische dataformaat.

plus.json

plus.json is een voorbeeld voor het toevoegen van eigen regels.

Velden in de regelconfiguratie

  • url: reguliere expressie die op de doel-URL moet matchen
  • selector: CSS-selector (heeft voorrang op xpath)
  • xpath: XPath-expressie
  • enc: encoding, voor als tekencodering-conversie nodig is
  • callable: eigen Extractor-klasse(n) die als voorbewerking worden uitgevoerd (enkelvoudig of als array)
  • after_callable: Extractor-klasse(n) die als laatste, als nabewerking, worden uitgevoerd

Uitvoervolgorde van Extractors als Pipeline-patroon

FullFeed laat de Extractors op volgorde doorlopen met het Pipeline-patroon van Laravel.
  1. De klasse(n) opgegeven via callable
  2. XPathExtractor
  3. SelectorExtractor
  4. De klasse(n) opgegeven via after_callable
Doordat je vóór en na eenvoudige XPath/CSS-extractie eigen verwerking kunt toevoegen, is het ontwerp goed bestand tegen de eigenaardigheden van individuele sites.

Ingebouwde Extractors

RemoveElements

Verwijdert elementen die matchen met de opgegeven selectors.

ReplaceMatches

Vervangt strings die matchen met een reguliere expressie (bewerking op de HTML-string).

StripTags

Verwijdert tags, vergelijkbaar met strip_tags().

Squish

Verwijdert overtollige witruimte met Str::squish().

Eigen regels toevoegen

  1. Voeg een JSON-bestand toe aan resources/fullfeed
  2. Voeg het toe aan paths in config/fullfeed.php
Omdat de eerste regel die matcht op data.url wordt gebruikt, is het aan te raden je extra bestanden vooraan in paths te plaatsen.
Laatst gewijzigd op 6 september 2026