<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

	<parameters>
		<parameter key="ps_pdf.nodes_file">null</parameter>
		<parameter key="ps_pdf.complex_attributes_file">null</parameter>
		<parameter key="ps_pdf.fonts_file">null</parameter>
		<parameter key="ps_pdf.colors_file">null</parameter>
		<parameter key="ps_pdf.cache.type">File</parameter>
		<parameter key="ps_pdf.cache.options" type="collection">
			<parameter key="cache_dir">%kernel.cache_dir%</parameter>
		</parameter>
		<parameter key="ps_pdf.use_cache_in_stylesheet">true</parameter>
		<parameter key="ps_pdf.markdown_stylesheet_filepath">null</parameter>
		<parameter key="ps_pdf.markdown_document_template_filepath">null</parameter>
		<parameter key="ps_pdf.document_parser_type">xml</parameter>
		<parameter key="ps_pdf.string_filter.bundle_based.class">Ps\PdfBundle\PHPPdf\Util\BundleBasedStringFilter</parameter>
	</parameters>

    <services>
    	<service id="ps_pdf.facade" class="PHPPdf\Core\Facade" />
    	
    	<service id="ps_pdf.facade_builder" class="PHPPdf\Core\FacadeBuilder">
    		<argument type="service">
		    	<service class="PHPPdf\Core\Configuration\LoaderImpl">
		    		<argument>%ps_pdf.nodes_file%</argument>
		    		<argument>%ps_pdf.complex_attributes_file%</argument>
		    		<argument>%ps_pdf.fonts_file%</argument>
		    		<argument>%ps_pdf.colors_file%</argument>
		    	</service>
    		</argument>
    		<call method="addStringFilter">
    			<argument type="service" id="ps_pdf.string_filter.bundle_based" />
    		</call>
    		<call method="setCache">
    			<argument>%ps_pdf.cache.type%</argument>
    			<argument>%ps_pdf.cache.options%</argument>
    		</call>
    		<call method="setUseCacheForStylesheetConstraint">
    			<argument>%ps_pdf.use_cache_in_stylesheet%</argument>
    		</call>
    		<call method="setMarkdownStylesheetFilepath">
    			<argument>%ps_pdf.markdown_stylesheet_filepath%</argument>
    		</call>
    		<call method="setMarkdownDocumentTemplateFilepath">
    			<argument>%ps_pdf.markdown_document_template_filepath%</argument>
    		</call>
    		<call method="setDocumentParserType">
    			<argument>%ps_pdf.document_parser_type%</argument>
    		</call>
    	</service>
    	
		<service id="ps_pdf.string_filter.bundle_based" class="%ps_pdf.string_filter.bundle_based.class%" public="false">
			<argument type="service" id="kernel" on-invalid="ignore" />
		</service>
    	
    	<service id="ps_pdf.listener" class="Ps\PdfBundle\EventListener\PdfListener">
    		<tag name="kernel.event_listener" event="kernel.controller" method="onKernelController" priority="1000" />
    		<tag name="kernel.event_listener" event="kernel.response" method="onKernelResponse" priority="1000" />
    		<argument id="ps_pdf.facade_builder" type="service" />
    		<argument id="annotation_reader" type="service" />
    		<argument id="ps_pdf.reflection_factory" type="service" />
    		<argument id="templating" type="service" />
    		<argument id="ps_pdf.cache" type="service" />
    	</service>

        <service id="ps_pdf.request_listener" class="Ps\PdfBundle\EventListener\PdfRequestListener">
            <tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest" />
        </service>

    	<service id="ps_pdf.reflection_factory" class="Ps\PdfBundle\Reflection\Factory" public="false" />
    	
    	<service id="ps_pdf.twig.pdf_extension" class="Ps\PdfBundle\Twig\Extensions\Extension\PdfExtension" public="false">
    		<tag name="twig.extension" />
    		<argument type="service" id="ps_pdf.templating.image_locator" />
    	</service>
    	
    	<service id="ps_pdf.templating.image_locator" class="Ps\PdfBundle\Templating\ImageLocator" public="false">
    		<argument type="service" id="kernel" />
    	</service>
    	
    	<service id="ps_pdf.cache" class="PHPPdf\Cache\CacheImpl">
    		<argument>%ps_pdf.cache.type%</argument>
    		<argument>%ps_pdf.cache.options%</argument>
    	</service>
    </services>
</container>