// https://symfony.com/doc/current/service_container/autowiring.html
AppBundle\WetterApi\Criteria\CriteriaInterFace: '@AppBundle\WetterApi\Criteria\CriteriaNaming' # default injection of concrete object by interface
daytemp: '@AppBundle\WetterApi\Criteria\CriteriaDayTemp' # set alias for concrete classes to inject interface
rival: '@AppBundle\WetterApi\Criteria\CriteriaRival'
check_criteria:
class: AppBundle\WetterApi\CheckCriteria
arguments:
$criteria2: '@daytemp' # setting specific classs other then default class for argument 2
$criteria3: '@rival'
AppBundle\WetterApi\WeatherData: # manually injecting specific parameter!
arguments: ['Hamburg']
#######################ALTERNATIVE###########################
####################Manage Criteria###################
# example: just delete: '@rival' or other critera alias. you can also switch them the order doesnt matter.
# implement new criteria:
# 1. create new class in AppBundle\WetterApi\Criteria implement the CriteriaInterface
# 2. add the Criteria to the AppBundle\WetterApi\Criteria\CheckCriteria constructor
# 3. add the class alias to the check_criteria arguments thats it!
check_criteria:
class: AppBundle\WetterApi\CheckCriteria
arguments: ['@daytemp', '@rival']
AppBundle\WetterApi\Criteria\CriteriaInterFace: '@naming' # default match class for CriteriaInterface
######################################################
AppBundle\WetterApi\WeatherData:
arguments: ['%city%'] # injects route parameter (the city the user requested)