63 : void
64 {
65 $this[UserSettingsConfigurationRepository::class] = fn(
$c): UserSettingsConfigurationRepository =>
66 new DatatabaseUserSettingsConfigurationRepository(
68 is_readable(CollectSettingsObjective::PATH())
69 ? include CollectSettingsObjective::PATH()
70 : []
71 );
72 $this[UserSettings::class] = fn(
$c): UserSettings =>
73 new UserSettingsImplementation(
79 $c[UserSettingsConfigurationRepository::class],
80 $c[UserSettingsDataRepository::class]
81 );
82 $this[StartingPointRepository::class] = fn(
$c): StartingPointRepository =>
83 new StartingPointRepository(
91 $c[UserSettingsConfigurationRepository::class]
92 );
93 $this[UserSettingsDataRepository::class] = fn(
$c): UserSettingsDataRepository =>
94 new DatatabaseUserSettingsDataRepository(
96 );
97 $this[ProfileDataRepository::class] = fn(
$c): ProfileDataRepository =>
98 new DatabaseProfileDataRepository(
100 $DIC[
'resource_storage'],
101 $c[ProfileFieldsConfigurationRepository::class]
102 );
103 $this[ProfileFieldsConfigurationRepository::class] = fn(
$c): ProfileFieldsConfigurationRepository =>
104 new DatabaseProfileFieldsConfigurationRepository(
106 new UUIDFactory(),
107 is_readable(CollectTypesObjective::PATH())
108 ? include CollectTypesObjective::PATH()
109 : [],
110 array_filter([
111 new Standard\Alias(),
112 new Standard\FirstName(),
113 new Standard\LastName(),
114 new Standard\
Title(),
115 new Standard\Birthday(),
116 new Standard\Gender(),
117 new Standard\Avatar(
118 $DIC[
'resource_storage'],
120 $DIC[
'http']->wrapper()->post(),
123 ),
124 new Standard\Roles(
125 $DIC[
'ilObjDataCache']
126 ),
127 new Standard\OrganisationalUnits(),
128 new Standard\Interests(
130 ),
131 new Standard\HelpOffered(
133 ),
134 new Standard\HelpLookedFor(
136 ),
137 new Standard\Institution(),
138 new Standard\Department(),
139 new Standard\Street(),
140 new Standard\ZipCode(),
141 new Standard\City(),
142 new Standard\Country(),
143 new Standard\PhoneOffice(),
144 new Standard\PhoneHome(),
145 new Standard\PhoneMobile(),
146 new Standard\Fax(),
147 new Standard\Email(),
148 new Standard\SecondEmail(),
149 new Standard\Hobby(),
150 new Standard\ReferralComment(),
151 new Standard\Matriculation(),
152 new Standard\ClientIP(),
153 \
ilMapUtil::isActivated() ? new Standard\Location() : null
154 ])
155 );
156 $this[
'profile.fields.changelisteners'] = fn(
$c): array =>
157 is_readable(CollectListenersObjective::PATH())
158 ? include CollectListenersObjective::PATH()
159 : [];
160 $this[Profile::class] = fn(
$c): Profile =>
161 new ProfileImplementation(
163 $c[ProfileFieldsConfigurationRepository::class],
164 $c[ProfileDataRepository::class]
165 );
166 $this[EndpointFactory::class] = fn(
$c): EndpointFactory =>
167 new EndpointFactory(
168 $c[ProfileFieldsConfigurationRepository::class],
169 $c[ProfileDataRepository::class],
170 $c[UserSettingsDataRepository::class],
171 $DIC[
'user']->getLoggedInUser(),
175 new DataFactory()
176 );
177 $this[Search::class] = fn(
$c): Search => new Search(
179 $c[EndpointFactory::class]
180 );
181 $this[NewAccountMailRepository::class] = fn(
$c): NewAccountMailRepository =>
182 new NewAccountMailRepository(
$DIC[
'ilDB']);
183 }