Failed Conditions
Push — master ( 41502d...bb8aaf )
by Yangsin
35:17
created

EccubeServiceProvider   C

Complexity

Total Complexity 5

Size/Duplication

Total Lines 366
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 102

Test Coverage

Coverage 97.55%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 366
ccs 239
cts 245
cp 0.9755
rs 5
wmc 5
lcom 0
cbo 102

2 Methods

Rating   Name   Duplication   Size   Complexity  
A boot() 0 3 1
B register() 0 344 4
1
<?php
2
/*
3
 * This file is part of EC-CUBE
4
 *
5
 * Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved.
6
 *
7
 * http://www.lockon.co.jp/
8
 *
9
 * This program is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation; either version 2
12
 * of the License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, write to the Free Software
21
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
 */
23
24
25
namespace Eccube\ServiceProvider;
26
27
use Eccube\Application;
28
use Silex\Application as BaseApplication;
29
use Silex\ServiceProviderInterface;
30
31
class EccubeServiceProvider implements ServiceProviderInterface
0 ignored issues
show
introduced by
Missing class doc comment
Loading history...
32
{
33
    /**
34
     * Registers services on the given app.
35
     *
36
     * This method should only be used to configure services and parameters.
37
     * It should not get services.
38
     *
39
     * @param BaseApplication $app An Application instance
40
     */
41 1073
    public function register(BaseApplication $app)
42
    {
43
        // Service
44
        $app['eccube.service.system'] = $app->share(function () use ($app) {
45 2
            return new \Eccube\Service\SystemService($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
46 1073
        });
47
        $app['view'] = $app->share(function () use ($app) {
48
            return $app['twig'];
49 1073
        });
50
        $app['eccube.service.cart'] = $app->share(function () use ($app) {
51 183
            return new \Eccube\Service\CartService($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
52 1073
        });
53
        $app['eccube.service.order'] = $app->share(function () use ($app) {
54 65
            return new \Eccube\Service\OrderService($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
Deprecated Code introduced by
The class Eccube\Service\OrderService has been deprecated with message: since 3.0.0, to be removed in 3.1

This class, trait or interface has been deprecated. The supplier of the file has supplied an explanatory message.

The explanatory message should give you some clue as to whether and when the type will be removed from the class and what other constant to use instead.

Loading history...
55 1073
        });
56
        $app['eccube.service.tax_rule'] = $app->share(function () use ($app) {
57 38
            return new \Eccube\Service\TaxRuleService($app['eccube.repository.tax_rule']);
58 1073
        });
59
        $app['eccube.service.plugin'] = $app->share(function () use ($app) {
60 149
            return new \Eccube\Service\PluginService($app);
61 1073
        });
62
        $app['eccube.service.mail'] = $app->share(function () use ($app) {
63 37
            return new \Eccube\Service\MailService($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
64 1073
        });
65
        $app['eccube.service.csv.export'] = $app->share(function () use ($app) {
66 2
            $csvService = new \Eccube\Service\CsvExportService();
67 2
            $csvService->setEntityManager($app['orm.em']);
68 2
            $csvService->setConfig($app['config']);
69 2
            $csvService->setCsvRepository($app['eccube.repository.csv']);
70 2
            $csvService->setCsvTypeRepository($app['eccube.repository.master.csv_type']);
71 2
            $csvService->setOrderRepository($app['eccube.repository.order']);
72 2
            $csvService->setCustomerRepository($app['eccube.repository.customer']);
73 2
            $csvService->setProductRepository($app['eccube.repository.product']);
74
75 2
            return $csvService;
76 1073
        });
77
        $app['eccube.service.shopping'] = $app->share(function () use ($app) {
78 61
            return new \Eccube\Service\ShoppingService($app, $app['eccube.service.cart'], $app['eccube.service.order']);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
79 1073
        });
80
81
        // Repository
82
        $app['eccube.repository.master.authority'] = $app->share(function () use ($app) {
83 203
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Authority');
84 1073
        });
85
        $app['eccube.repository.master.tag'] = $app->share(function () use ($app) {
86 4
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Tag');
87 1073
        });
88
        $app['eccube.repository.master.pref'] = $app->share(function () use ($app) {
89 315
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Pref');
90 1073
        });
91
        $app['eccube.repository.master.sex'] = $app->share(function () use ($app) {
92 293
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Sex');
93 1073
        });
94
        $app['eccube.repository.master.disp'] = $app->share(function () use ($app) {
95 245
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Disp');
96 1073
        });
97
        $app['eccube.repository.master.product_type'] = $app->share(function () use ($app) {
98 250
            return $app['orm.em']->getRepository('Eccube\Entity\Master\ProductType');
99 1073
        });
100
        $app['eccube.repository.master.page_max'] = $app->share(function () use ($app) {
101 14
            return $app['orm.em']->getRepository('Eccube\Entity\Master\PageMax');
102 1073
        });
103
        $app['eccube.repository.master.order_status'] = $app->share(function () use ($app) {
104 3
            return $app['orm.em']->getRepository('Eccube\Entity\Master\OrderStatus');
105 1073
        });
106
        $app['eccube.repository.master.device_type'] = $app->share(function () use ($app) {
107 210
            return $app['orm.em']->getRepository('Eccube\Entity\Master\DeviceType');
108 1073
        });
109
        $app['eccube.repository.master.csv_type'] = $app->share(function () use ($app) {
110 25
            return $app['orm.em']->getRepository('Eccube\Entity\Master\CsvType');
111 1073
        });
112
113
        $app['eccube.repository.delivery'] = $app->share(function () use ($app) {
114 120
            return $app['orm.em']->getRepository('Eccube\Entity\Delivery');
115 1073
        });
116
        $app['eccube.repository.delivery_date'] = $app->share(function () use ($app) {
117 232
            return $app['orm.em']->getRepository('Eccube\Entity\DeliveryDate');
118 1073
        });
119
        $app['eccube.repository.delivery_fee'] = $app->share(function () use ($app) {
120 171
            return $app['orm.em']->getRepository('Eccube\Entity\DeliveryFee');
121 1073
        });
122
        $app['eccube.repository.delivery_time'] = $app->share(function () use ($app) {
123
            return $app['orm.em']->getRepository('Eccube\Entity\DeliveryTime');
124 1073
        });
125
        $app['eccube.repository.payment'] = $app->share(function () use ($app) {
126 186
            return $app['orm.em']->getRepository('Eccube\Entity\Payment');
127 1073
        });
128
        $app['eccube.repository.payment_option'] = $app->share(function () use ($app) {
129 2
            return $app['orm.em']->getRepository('Eccube\Entity\PaymentOption');
130 1073
        });
131
        $app['eccube.repository.category'] = $app->share(function () use ($app) {
132 331
            $CategoryRepository = $app['orm.em']->getRepository('Eccube\Entity\Category');
133 331
            $CategoryRepository->setApplication($app);
134
135 331
            return $CategoryRepository;
136 1073
        });
137
        $app['eccube.repository.customer'] = $app->share(function () use ($app) {
138 304
            return $app['orm.em']->getRepository('Eccube\Entity\Customer');
139 1073
        });
140
        $app['eccube.repository.news'] = $app->share(function () use ($app) {
141 20
            return $app['orm.em']->getRepository('Eccube\Entity\News');
142 1073
        });
143
        $app['eccube.repository.mail_history'] = $app->share(function () use ($app) {
144 10
            return $app['orm.em']->getRepository('Eccube\Entity\MailHistory');
145 1073
        });
146
        $app['eccube.repository.member'] = $app->share(function () use ($app) {
147 492
            $memberRepository = $app['orm.em']->getRepository('Eccube\Entity\Member');
148 492
            $memberRepository->setEncoderFactorty($app['security.encoder_factory']);
149 492
            return $memberRepository;
0 ignored issues
show
introduced by
Missing blank line before return statement
Loading history...
150 1073
        });
151
        $app['eccube.repository.order'] = $app->share(function () use ($app) {
152
            return $app['orm.em']->getRepository('Eccube\Entity\Order');
153 1073
        });
154
        $app['eccube.repository.product'] = $app->share(function () use ($app) {
155 71
            $productRepository = $app['orm.em']->getRepository('Eccube\Entity\Product');
156 71
            $productRepository->setApplication($app);
157
158 71
            return $productRepository;
159 1073
        });
160
        $app['eccube.repository.product_image'] = $app->share(function () use ($app) {
161
            return $app['orm.em']->getRepository('Eccube\Entity\ProductImage');
162 1073
        });
163
        $app['eccube.repository.product_class'] = $app->share(function () use ($app) {
164 34
            return $app['orm.em']->getRepository('Eccube\Entity\ProductClass');
165 1073
        });
166
        $app['eccube.repository.product_stock'] = $app->share(function () use ($app) {
167
            return $app['orm.em']->getRepository('Eccube\Entity\ProductStock');
168 1073
        });
169
        $app['eccube.repository.product_tag'] = $app->share(function () use ($app) {
170
            return $app['orm.em']->getRepository('Eccube\Entity\ProductTag');
171 1073
        });
172
        $app['eccube.repository.class_name'] = $app->share(function () use ($app) {
173 263
            return $app['orm.em']->getRepository('Eccube\Entity\ClassName');
174 1073
        });
175
        $app['eccube.repository.class_category'] = $app->share(function () use ($app) {
176 266
            return $app['orm.em']->getRepository('Eccube\Entity\ClassCategory');
177 1073
        });
178
        $app['eccube.repository.customer_favorite_product'] = $app->share(function () use ($app) {
179 574
            return $app['orm.em']->getRepository('Eccube\Entity\CustomerFavoriteProduct');
180 1073
        });
181
        $app['eccube.repository.base_info'] = $app->share(function () use ($app) {
182 674
            $BaseInfoRepository = $app['orm.em']->getRepository('Eccube\Entity\BaseInfo');
183 674
            $BaseInfoRepository->setApplication($app);
184
185 674
            return $BaseInfoRepository;
186 1073
        });
187
        $app['eccube.repository.tax_rule'] = $app->share(function () use ($app) {
188 207
            $taxRuleRepository = $app['orm.em']->getRepository('Eccube\Entity\TaxRule');
189 207
            $taxRuleRepository->setApplication($app);
190
191 207
            return $taxRuleRepository;
192 1073
        });
193
        $app['eccube.repository.page_layout'] = $app->share(function () use ($app) {
194 195
            $pageLayoutRepository = $app['orm.em']->getRepository('Eccube\Entity\PageLayout');
195 195
            $pageLayoutRepository->setApplication($app);
196
197 195
            return $pageLayoutRepository;
198 1073
        });
199
        $app['eccube.repository.block'] = $app->share(function () use ($app) {
200 14
            $blockRepository = $app['orm.em']->getRepository('Eccube\Entity\Block');
201 14
            $blockRepository->setApplication($app);
202
203 14
            return $blockRepository;
204 1073
        });
205
        $app['eccube.repository.order'] = $app->share(function () use ($app) {
206 134
            $orderRepository = $app['orm.em']->getRepository('Eccube\Entity\Order');
207 134
            $orderRepository->setApplication($app);
208
209 134
            return $orderRepository;
210 1073
        });
211
        $app['eccube.repository.customer_address'] = $app->share(function () use ($app) {
212 86
            return $app['orm.em']->getRepository('Eccube\Entity\CustomerAddress');
213 1073
        });
214
        $app['eccube.repository.shipping'] = $app->share(function () use ($app) {
215 4
            return $app['orm.em']->getRepository('Eccube\Entity\Shipping');
216 1073
        });
217
        $app['eccube.repository.customer_status'] = $app->share(function () use ($app) {
218 2
            return $app['orm.em']->getRepository('Eccube\Entity\Master\CustomerStatus');
219 1073
        });
220
        $app['eccube.repository.order_status'] = $app->share(function () use ($app) {
221 161
            return $app['orm.em']->getRepository('Eccube\Entity\Master\OrderStatus');
222 1073
        });
223
        $app['eccube.repository.mail_template'] = $app->share(function () use ($app) {
224 12
            return $app['orm.em']->getRepository('Eccube\Entity\MailTemplate');
225 1073
        });
226
        $app['eccube.repository.csv'] = $app->share(function () use ($app) {
227 8
            return $app['orm.em']->getRepository('Eccube\Entity\Csv');
228 1073
        });
229
        $app['eccube.repository.template'] = $app->share(function () use ($app) {
230 1
            return $app['orm.em']->getRepository('Eccube\Entity\Template');
231 1073
        });
232
        $app['eccube.repository.authority_role'] = $app->share(function () use ($app) {
233 280
            return $app['orm.em']->getRepository('Eccube\Entity\AuthorityRole');
234 1073
        });
235
236
        $app['paginator'] = $app->protect(function () {
237 23
            $paginator = new \Knp\Component\Pager\Paginator();
238 23
            $paginator->subscribe(new \Eccube\EventListener\PaginatorListener());
239
240 23
            return $paginator;
241 1073
        });
242
243
        $app['eccube.repository.help'] = $app->share(function () use ($app) {
244 10
            return $app['orm.em']->getRepository('Eccube\Entity\Help');
245 1073
        });
246
        $app['eccube.repository.plugin'] = $app->share(function () use ($app) {
247 7
            return $app['orm.em']->getRepository('Eccube\Entity\Plugin');
248 1073
        });
249
        $app['eccube.repository.plugin_event_handler'] = $app->share(function () use ($app) {
250 2
            return $app['orm.em']->getRepository('Eccube\Entity\PluginEventHandler');
251 1073
        });
252
        // em
253 1073
        if (isset($app['orm.em'])) {
254
            $app['orm.em'] = $app->share($app->extend('orm.em', function (\Doctrine\ORM\EntityManager $em, \Silex\Application $app) {
255
                // tax_rule
256 1073
                $taxRuleRepository = $em->getRepository('Eccube\Entity\TaxRule');
257 1073
                $taxRuleRepository->setApplication($app);
258 1073
                $taxRuleService = new \Eccube\Service\TaxRuleService($taxRuleRepository);
0 ignored issues
show
Compatibility introduced by
$taxRuleRepository of type object<Doctrine\ORM\EntityRepository> is not a sub-type of object<Eccube\Repository\TaxRuleRepository>. It seems like you assume a child class of the class Doctrine\ORM\EntityRepository to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
259 1073
                $em->getEventManager()->addEventSubscriber(new \Eccube\Doctrine\EventSubscriber\TaxRuleEventSubscriber($taxRuleService));
260
261
                // save
262 1073
                $saveEventSubscriber = new \Eccube\Doctrine\EventSubscriber\SaveEventSubscriber($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
263 1073
                $em->getEventManager()->addEventSubscriber($saveEventSubscriber);
264
265
                // clear cache
266 1073
                $clearCacheEventSubscriber = new \Eccube\Doctrine\EventSubscriber\ClearCacheEventSubscriber($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
267 1073
                $em->getEventManager()->addEventSubscriber($clearCacheEventSubscriber);
268
269
                // filters
270 1073
                $config = $em->getConfiguration();
271 1073
                $config->addFilter("soft_delete", '\Eccube\Doctrine\Filter\SoftDeleteFilter');
272 1073
                $config->addFilter("nostock_hidden", '\Eccube\Doctrine\Filter\NoStockHiddenFilter');
273 1073
                $config->addFilter("incomplete_order_status_hidden", '\Eccube\Doctrine\Filter\OrderStatusFilter');
274 1073
                $em->getFilters()->enable('soft_delete');
275
276 1073
                return $em;
277 1073
            }));
278
        }
279
280
        // Form\Type
281
        $app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function ($extensions) use ($app) {
282 573
            $extensions[] = new \Eccube\Form\Extension\HelpTypeExtension();
283 573
            $extensions[] = new \Eccube\Form\Extension\FreezeTypeExtension();
284
285 573
            return $extensions;
286 1073
        }));
287 1073
        $app['form.types'] = $app->share($app->extend('form.types', function ($types) use ($app) {
288 573
            $types[] = new \Eccube\Form\Type\NameType($app['config']);
289 573
            $types[] = new \Eccube\Form\Type\KanaType($app['config']);
290 573
            $types[] = new \Eccube\Form\Type\TelType($app['config']);
291 573
            $types[] = new \Eccube\Form\Type\FaxType(); // 削除予定
292 573
            $types[] = new \Eccube\Form\Type\ZipType($app['config']);
293 573
            $types[] = new \Eccube\Form\Type\AddressType($app['config']);
294 573
            $types[] = new \Eccube\Form\Type\RepeatedEmailType();
295 573
            $types[] = new \Eccube\Form\Type\RepeatedPasswordType($app['config']);
296 573
            $types[] = new \Eccube\Form\Type\PriceType($app['config']);
297
298 573
            $types[] = new \Eccube\Form\Type\MasterType();
299 573
            $types[] = new \Eccube\Form\Type\Master\JobType();
300 573
            $types[] = new \Eccube\Form\Type\Master\CustomerStatusType();
301 573
            $types[] = new \Eccube\Form\Type\Master\OrderStatusType();
302 573
            $types[] = new \Eccube\Form\Type\Master\CalcRuleType();
303 573
            $types[] = new \Eccube\Form\Type\Master\SexType();
304 573
            $types[] = new \Eccube\Form\Type\Master\DispType();
305 573
            $types[] = new \Eccube\Form\Type\Master\PrefType();
306 573
            $types[] = new \Eccube\Form\Type\Master\ProductTypeType();
307 573
            $types[] = new \Eccube\Form\Type\Master\ProductListMaxType();
308 573
            $types[] = new \Eccube\Form\Type\Master\ProductListOrderByType();
309 573
            $types[] = new \Eccube\Form\Type\Master\PageMaxType();
310 573
            $types[] = new \Eccube\Form\Type\Master\CsvType();
311 573
            $types[] = new \Eccube\Form\Type\Master\DeliveryDateType();
312 573
            $types[] = new \Eccube\Form\Type\Master\PaymentType();
313 573
            $types[] = new \Eccube\Form\Type\Master\MailTemplateType();
314 573
            $types[] = new \Eccube\Form\Type\Master\CategoryType();
315 573
            $types[] = new \Eccube\Form\Type\Master\TagType();
316
317 573
            $types[] = new \Eccube\Form\Type\CustomerType($app); // 削除予定
318
319 573
            if (isset($app['security']) && isset($app['eccube.repository.customer_favorite_product'])) {
320 573
                $types[] = new \Eccube\Form\Type\AddCartType($app['config'], $app['security'], $app['eccube.repository.customer_favorite_product']);
321
            }
322 573
            $types[] = new \Eccube\Form\Type\SearchProductType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
323 573
            $types[] = new \Eccube\Form\Type\SearchProductBlockType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
324 573
            $types[] = new \Eccube\Form\Type\OrderSearchType($app);
325 573
            $types[] = new \Eccube\Form\Type\ShippingItemType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
326 573
            $types[] = new \Eccube\Form\Type\ShippingMultipleType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
327 573
            $types[] = new \Eccube\Form\Type\ShippingMultipleItemType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
328 573
            $types[] = new \Eccube\Form\Type\ShoppingType();
329
330
            // front
331 573
            $types[] = new \Eccube\Form\Type\Front\EntryType($app['config']);
332 573
            $types[] = new \Eccube\Form\Type\Front\ContactType($app['config']);
333 573
            $types[] = new \Eccube\Form\Type\Front\NonMemberType($app['config']);
334 573
            $types[] = new \Eccube\Form\Type\Front\ShoppingShippingType();
335 573
            $types[] = new \Eccube\Form\Type\Front\CustomerAddressType($app['config']);
336 573
            $types[] = new \Eccube\Form\Type\Front\ForgotType();
337 573
            $types[] = new \Eccube\Form\Type\Front\CustomerLoginType($app['session']);
338
339
            // admin
340 573
            $types[] = new \Eccube\Form\Type\Admin\LoginType($app['session']);
341 573
            $types[] = new \Eccube\Form\Type\Admin\ChangePasswordType($app);
342 573
            $types[] = new \Eccube\Form\Type\Admin\ProductType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
343 573
            $types[] = new \Eccube\Form\Type\Admin\ProductClassType($app);
344 573
            $types[] = new \Eccube\Form\Type\Admin\SearchProductType($app);
345 573
            $types[] = new \Eccube\Form\Type\Admin\SearchCustomerType($app['config']);
346 573
            $types[] = new \Eccube\Form\Type\Admin\SearchOrderType($app['config']);
347 573
            $types[] = new \Eccube\Form\Type\Admin\CustomerType($app['config']);
348 573
            $types[] = new \Eccube\Form\Type\Admin\ClassNameType($app['config']);
349 573
            $types[] = new \Eccube\Form\Type\Admin\ClassCategoryType($app['config']);
350 573
            $types[] = new \Eccube\Form\Type\Admin\CategoryType($app['config']);
351 573
            $types[] = new \Eccube\Form\Type\Admin\MemberType($app['config']);
352 573
            $types[] = new \Eccube\Form\Type\Admin\AuthorityRoleType($app['config']);
353 573
            $types[] = new \Eccube\Form\Type\Admin\PageLayoutType();
354 573
            $types[] = new \Eccube\Form\Type\Admin\NewsType($app['config']);
355 573
            $types[] = new \Eccube\Form\Type\Admin\TemplateType($app['config']);
356 573
            $types[] = new \Eccube\Form\Type\Admin\SecurityType($app);
357 573
            $types[] = new \Eccube\Form\Type\Admin\CsvImportType($app);
358 573
            $types[] = new \Eccube\Form\Type\Admin\ShopMasterType($app['config']);
359 573
            $types[] = new \Eccube\Form\Type\Admin\TradelawType($app['config']);
360 573
            $types[] = new \Eccube\Form\Type\Admin\OrderType($app);
361 573
            $types[] = new \Eccube\Form\Type\Admin\OrderDetailType($app);
362 573
            $types[] = new \Eccube\Form\Type\Admin\ShippingType($app);
0 ignored issues
show
Compatibility introduced by
$app of type object<Silex\Application> is not a sub-type of object<Eccube\Application>. It seems like you assume a child class of the class Silex\Application to be always present.

This check looks for parameters that are defined as one type in their type hint or doc comment but seem to be used as a narrower type, i.e an implementation of an interface or a subclass.

Consider changing the type of the parameter or doing an instanceof check before assuming your parameter is of the expected type.

Loading history...
363 573
            $types[] = new \Eccube\Form\Type\Admin\ShipmentItemType($app);
364 573
            $types[] = new \Eccube\Form\Type\Admin\PaymentRegisterType($app);
365 573
            $types[] = new \Eccube\Form\Type\Admin\TaxRuleType();
366 573
            $types[] = new \Eccube\Form\Type\Admin\MainEditType($app);
367 573
            $types[] = new \Eccube\Form\Type\Admin\MailType();
368 573
            $types[] = new \Eccube\Form\Type\Admin\CustomerAgreementType($app);
369 573
            $types[] = new \Eccube\Form\Type\Admin\BlockType($app);
370 573
            $types[] = new \Eccube\Form\Type\Admin\DeliveryType();
371 573
            $types[] = new \Eccube\Form\Type\Admin\DeliveryFeeType();
372 573
            $types[] = new \Eccube\Form\Type\Admin\DeliveryTimeType($app['config']);
373 573
            $types[] = new \Eccube\Form\Type\Admin\LogType($app['config']);
374 573
            $types[] = new \Eccube\Form\Type\Admin\CacheType($app['config']);
375
376 573
            $types[] = new \Eccube\Form\Type\Admin\MasterdataType($app);
377 573
            $types[] = new \Eccube\Form\Type\Admin\MasterdataEditType($app);
378
379 573
            $types[] = new \Eccube\Form\Type\Admin\PluginLocalInstallType();
380 573
            $types[] = new \Eccube\Form\Type\Admin\PluginManagementType();
381
382 573
            return $types;
383 1073
        }));
384
    }
385
386
    /**
0 ignored issues
show
introduced by
Doc comment for parameter "$app" missing
Loading history...
387
     * Bootstraps the application.
388
     *
389
     * This method is called after all services are registered
390
     * and should be used for "dynamic" configuration (whenever
391
     * a service must be requested).
392
     */
393
    public function boot(BaseApplication $app)
394
    {
395
    }
396
}
397