Download the PHP package enm/external-layout without Composer
On this page you can find all versions of the php package enm/external-layout. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download enm/external-layout
More information about enm/external-layout
Files in enm/external-layout
Package external-layout
Short Description Load, modify and store html layouts from remote locally
License MIT
Informations about the package external-layout
External Layout
This library loads html layouts from remote, modify them for local usage and stores the result into a new file.
Installation
If you want to use the default (guzzle) loader:
Usage
Their are different ways to use this library, depending on your needs.
Simple
The simplest way of usage is to use the layout creator factory with the default guzzle loader (requires guzzlehttp/guzzle
).
For simplest usage you should build your layout definitions from a config array.
Customized
If you want to customize loading, manipulation or finishing for the layout, you can also use the factory and configure your custom requirements.
Fully Customized
If you want a fully customized implementation (for example for usage with a dependency injection service container), you could create all instances without factory by yourself.
Customization
The library works as follows:
- Load contents from source url into a \DomDocument ("loaders")
- Manipulate the \DomDocument for example with content replacements or block for your templating ("manipulators")
- Finish the layout with simple plain text processing ("finishers")
- Store the manipulated and finished html content into the configured file
Loaders
Loaders are responsible for loading the html content of the given uri into a \DomDocument.
You can use the default loader (Enm\ExternalLayout\Loader\GuzzleLoader
) which requires an instance of (GuzzleHttp\ClientInterface
; composer: guzzlehttp/guzzle
) or you
can implement the Enm\ExternalLayout\Loader\LoaderInterface
by yourself.
Manipulators
Manipulators are responsible for manipulation of the loaded \DomDocument. Manipulators could change contents, remove or add new dom elements or insert blocks for different templating languages (default Twig).
If you want to use more than one manipulator you can add all your manipulators to an instance of Enm\ExternalLayout\Manipulator\ManipulatorChain
.
A manipulator must implement Enm\ExternalLayout\Manipulator\ManipulatorInterface
.
Available manipulators are:
UrlManipulator
: Replace relative urls with absolute urls (needed because assets normally are farther loaded from original source)TwigManipulator
: Replace strings with twig blocks; prepend or append twig blocks to html elementsBaseUrlManipulator
: Removes the base tag to avoid invalid local relative paths
Finishers
Finishers are responsible for cleanup and string replacements which are not possible in a \DomDocument.
If you want to use more than one finisher you can add all your finishers to an instance of Enm\ExternalLayout\Finisher\FinisherChain
.
A finisher must implement Enm\ExternalLayout\Finisher\FinisherInterface
.
Available finishers are:
WorkingTagFinisher
: Remove "working tags", which are used to generate valid xml content for the \DomDocument where actually no tag in the finished content is needed
All versions of external-layout with dependencies
psr/http-message Version ^1.0
symfony/filesystem Version ^4.0
symfony/css-selector Version ^4.0
ext-dom Version *