Symfony 2 DIC Example File

<?xml version="1.0" ?>

<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="justimmo.username">myUsername</parameter>
        <parameter key="justimmo.password">myPassword</parameter>
        <parameter key="justimmo.api.class">Justimmo\Api\JustimmoApi</parameter>
        <parameter key="justimmo.logger.class">Psr\Log\NullLogger</parameter>
        <parameter key="justimmo.cache.class">Justimmo\Cache\MemcacheCache</parameter>

        <parameter key="justimmo.realty.mapper">Justimmo\Model\Mapper\V1\RealtyMapper</parameter>
        <parameter key="justimmo.realty.wrapper">Justimmo\Model\Wrapper\V1\RealtyWrapper</parameter>
        <parameter key="justimmo.query.realty.class">Justimmo\Model\RealtyQuery</parameter>

        <parameter key="justimmo.project.mapper">Justimmo\Model\Mapper\V1\ProjectMapper</parameter>
        <parameter key="justimmo.project.wrapper">Justimmo\Model\Wrapper\V1\ProjectWrapper</parameter>
        <parameter key="justimmo.query.project.class">Justimmo\Model\ProjectQuery</parameter>

        <parameter key="justimmo.employee.mapper">Justimmo\Model\Mapper\V1\EmployeeMapper</parameter>
        <parameter key="justimmo.employee.wrapper">Justimmo\Model\Wrapper\V1\EmployeeWrapper</parameter>
        <parameter key="justimmo.query.employee.class">Justimmo\Model\EmployeeQuery</parameter>
    </parameters>

    <services>
        <service id="justimmo.memcache" class="Memcache">
            <call method="addServer">
                <argument type="string">localhost</argument>
            </call>
        </service>
        <service id="justimmo.cache" class="%justimmo.cache.class%">
            <argument type="service" id="justimmo.memcache"/>
        </service>

        <service id="justimmo.realty.mapper" class="%justimmo.realty.mapper%"/>
        <service id="justimmo.realty.wrapper" class="%justimmo.realty.wrapper%">
            <argument type="service" id="justimmo.realty.mapper"/>
        </service>

        <service id="justimmo.project.mapper" class="%justimmo.project.mapper%"/>
        <service id="justimmo.project.wrapper" class="%justimmo.project.wrapper%">
            <argument type="service" id="justimmo.project.mapper"/>
        </service>

        <service id="justimmo.employee.mapper" class="%justimmo.employee.mapper%"/>
        <service id="justimmo.employee.wrapper" class="%justimmo.employee.wrapper%">
            <argument type="service" id="justimmo.employee.mapper"/>
        </service>

        <service id="justimmo.api" class="%justimmo.api.class%">
            <argument>%justimmo.username%</argument>
            <argument>%justimmo.password%</argument>
            <argument type="service" id="justimmo.logger"/>
            <argument type="service" id="justimmo.cache"/>
        </service>

        <service id="justimmo.query.realty" class="%justimmo.query.realty.class%">
            <argument type="service" id="justimmo.api"/>
            <argument type="service" id="justimmo.realty.wrapper"/>
            <argument type="service" id="justimmo.realty.mapper"/>
        </service>

        <service id="justimmo.query.project" class="%justimmo.query.project.class%">
            <argument type="service" id="justimmo.api"/>
            <argument type="service" id="justimmo.project.wrapper"/>
            <argument type="service" id="justimmo.project.mapper"/>
        </service>

        <service id="justimmo.query.employee" class="%justimmo.query.employee.class%">
            <argument type="service" id="justimmo.api"/>
            <argument type="service" id="justimmo.employee.wrapper"/>
            <argument type="service" id="justimmo.employee.mapper"/>
        </service>
    </services>

</container>