PHPackages                             bayareawebpro/laravel-dom-pipeline - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. bayareawebpro/laravel-dom-pipeline

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

bayareawebpro/laravel-dom-pipeline
==================================

A DOM Pipeline Utility for Modifying HTML

v1.0.8(1mo ago)51.3kMITPHPPHP ^8.2CI failing

Since Apr 23Pushed 3y ago3 watchersCompare

[ Source](https://github.com/bayareawebpro/laravel-dom-pipeline)[ Packagist](https://packagist.org/packages/bayareawebpro/laravel-dom-pipeline)[ Docs](https://github.com/bayareawebpro/laravel-dom-pipeline)[ RSS](/packages/bayareawebpro-laravel-dom-pipeline/feed)WikiDiscussions master Synced yesterday

READMEChangelog (8)Dependencies (10)Versions (11)Used By (0)

Laravel DOM Pipeline
====================

[](#laravel-dom-pipeline)

[![](https://github.com/bayareawebpro/laravel-dom-pipeline/workflows/ci/badge.svg)](https://github.com/bayareawebpro/laravel-dom-pipeline/workflows/ci/badge.svg)[![](https://camo.githubusercontent.com/5447cfa14a1d3124bbb4e348d757b9bf3f7f83b6e38318c484700ec0d47eb174/68747470733a2f2f636f6465636f762e696f2f67682f6261796172656177656270726f2f6c61726176656c2d646f6d2d706970656c696e652f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://camo.githubusercontent.com/5447cfa14a1d3124bbb4e348d757b9bf3f7f83b6e38318c484700ec0d47eb174/68747470733a2f2f636f6465636f762e696f2f67682f6261796172656177656270726f2f6c61726176656c2d646f6d2d706970656c696e652f6272616e63682f6d61737465722f67726170682f62616467652e737667)[![](https://camo.githubusercontent.com/05b49ec50af2f1e61ee8182e8eab27dc08e6c98bd3c0a1d710d388f1ec82efbe/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6261796172656177656270726f2f6c61726176656c2d646f6d2d706970656c696e652e737667)](https://camo.githubusercontent.com/05b49ec50af2f1e61ee8182e8eab27dc08e6c98bd3c0a1d710d388f1ec82efbe/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6261796172656177656270726f2f6c61726176656c2d646f6d2d706970656c696e652e737667)[![](https://camo.githubusercontent.com/145d412bba75c409040a14159c3b7ddc45132dc757652f36841045c50906c1c9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6261796172656177656270726f2f6c61726176656c2d646f6d2d706970656c696e652e737667)](https://camo.githubusercontent.com/145d412bba75c409040a14159c3b7ddc45132dc757652f36841045c50906c1c9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6261796172656177656270726f2f6c61726176656c2d646f6d2d706970656c696e652e737667)[![](https://camo.githubusercontent.com/b60ae987297da06088ea8e815265e37e4627c6f6485d19a3dcb963b576141b28/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d737563636573732e737667)](https://camo.githubusercontent.com/b60ae987297da06088ea8e815265e37e4627c6f6485d19a3dcb963b576141b28/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d737563636573732e737667)

```
composer require bayareawebpro/laravel-dom-pipeline
```

>

Laravel DOM Pipeline allows you to pipe HTML content through a series of classes which can be helpful with sanitization and server-side enhancement / modification of page elements. The pipeline will not return the `` tag or any other tags outside of the body scope.

> "libxml\_use\_internal\_errors" is enabled allow any type of tag to operated on. See DomPipelineService::class (line 25).

Usage:
------

[](#usage)

```
use BayAreaWebPro\DomPipeline\DomPipeline;
use My\Pipes\{
    LazyLoadImageTags,
    LazyLoadVideoTags,
    BuildTableOfContents
};

$modified = DomPipeline::make($html, [
    LazyLoadImageTags::class,
    LazyLoadVideoTags::class,
    BuildTableOfContents::class,
]);
```

### Example Dom Pipe Class

[](#example-dom-pipe-class)

> Docs:

```
use DOMDocument;
use DOMXPath;
use Closure;

class UpdateHeaders{
    public function handle(DOMDocument $dom, Closure $next)
    {
        $xpath = new DOMXPath($dom);
        foreach ($xpath->query('//h1|//h2|//h3|//h4|//h5|//h6') as $node) {
            // Change the header tags content.
            $node->nodeValue = "This is a {$node->tagName} tag.";
        }
        return $next($dom);
    }
}
```

### LazyLoad Images

[](#lazyload-images)

```
