Failed Conditions
Pull Request — master (#1922)
by chihiro
49:10 queued 16:45
created

EccubeServiceProvider   C

Complexity

Total Complexity 5

Size/Duplication

Total Lines 364
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 102

Test Coverage

Coverage 97.54%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
dl 0
loc 364
ccs 238
cts 244
cp 0.9754
rs 5
c 3
b 0
f 0
wmc 5
lcom 0
cbo 102

2 Methods

Rating   Name   Duplication   Size   Complexity  
B register() 0 342 4
A boot() 0 3 1
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 1068
    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 1068
        });
47
        $app['view'] = $app->share(function () use ($app) {
48
            return $app['twig'];
49 1068
        });
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 1068
        });
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 1068
        });
56
        $app['eccube.service.tax_rule'] = $app->share(function () use ($app) {
57 38
            return new \Eccube\Service\TaxRuleService($app['eccube.repository.tax_rule']);
58 1068
        });
59
        $app['eccube.service.plugin'] = $app->share(function () use ($app) {
60 149
            return new \Eccube\Service\PluginService($app);
61 1068
        });
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 1068
        });
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 1068
        });
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 1068
        });
80
81
        // Repository
82
        $app['eccube.repository.master.authority'] = $app->share(function () use ($app) {
83 202
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Authority');
84 1068
        });
85
        $app['eccube.repository.master.tag'] = $app->share(function () use ($app) {
86 4
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Tag');
87 1068
        });
88
        $app['eccube.repository.master.pref'] = $app->share(function () use ($app) {
89 314
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Pref');
90 1068
        });
91
        $app['eccube.repository.master.sex'] = $app->share(function () use ($app) {
92 292
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Sex');
93 1068
        });
94
        $app['eccube.repository.master.disp'] = $app->share(function () use ($app) {
95 242
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Disp');
96 1068
        });
97
        $app['eccube.repository.master.product_type'] = $app->share(function () use ($app) {
98 248
            return $app['orm.em']->getRepository('Eccube\Entity\Master\ProductType');
99 1068
        });
100
        $app['eccube.repository.master.page_max'] = $app->share(function () use ($app) {
101 14
            return $app['orm.em']->getRepository('Eccube\Entity\Master\PageMax');
102 1068
        });
103
        $app['eccube.repository.master.order_status'] = $app->share(function () use ($app) {
104 3
            return $app['orm.em']->getRepository('Eccube\Entity\Master\OrderStatus');
105 1068
        });
106
        $app['eccube.repository.master.device_type'] = $app->share(function () use ($app) {
107 208
            return $app['orm.em']->getRepository('Eccube\Entity\Master\DeviceType');
108 1068
        });
109
        $app['eccube.repository.master.csv_type'] = $app->share(function () use ($app) {
110 25
            return $app['orm.em']->getRepository('Eccube\Entity\Master\CsvType');
111 1068
        });
112
113
        $app['eccube.repository.delivery'] = $app->share(function () use ($app) {
114 120
            return $app['orm.em']->getRepository('Eccube\Entity\Delivery');
115 1068
        });
116
        $app['eccube.repository.delivery_date'] = $app->share(function () use ($app) {
117 230
            return $app['orm.em']->getRepository('Eccube\Entity\DeliveryDate');
118 1068
        });
119
        $app['eccube.repository.delivery_fee'] = $app->share(function () use ($app) {
120 170
            return $app['orm.em']->getRepository('Eccube\Entity\DeliveryFee');
121 1068
        });
122
        $app['eccube.repository.delivery_time'] = $app->share(function () use ($app) {
123
            return $app['orm.em']->getRepository('Eccube\Entity\DeliveryTime');
124 1068
        });
125
        $app['eccube.repository.payment'] = $app->share(function () use ($app) {
126 185
            return $app['orm.em']->getRepository('Eccube\Entity\Payment');
127 1068
        });
128
        $app['eccube.repository.payment_option'] = $app->share(function () use ($app) {
129 2
            return $app['orm.em']->getRepository('Eccube\Entity\PaymentOption');
130 1068
        });
131
        $app['eccube.repository.category'] = $app->share(function () use ($app) {
132 321
            $CategoryRepository = $app['orm.em']->getRepository('Eccube\Entity\Category');
133 321
            $CategoryRepository->setApplication($app);
134
135 321
            return $CategoryRepository;
136 1068
        });
137
        $app['eccube.repository.customer'] = $app->share(function () use ($app) {
138 303
            return $app['orm.em']->getRepository('Eccube\Entity\Customer');
139 1068
        });
140
        $app['eccube.repository.news'] = $app->share(function () use ($app) {
141 20
            return $app['orm.em']->getRepository('Eccube\Entity\News');
142 1068
        });
143
        $app['eccube.repository.mail_history'] = $app->share(function () use ($app) {
144 10
            return $app['orm.em']->getRepository('Eccube\Entity\MailHistory');
145 1068
        });
146
        $app['eccube.repository.member'] = $app->share(function () use ($app) {
147 489
            $memberRepository = $app['orm.em']->getRepository('Eccube\Entity\Member');
148 489
            $memberRepository->setEncoderFactorty($app['security.encoder_factory']);
149 489
            return $memberRepository;
0 ignored issues
show
introduced by
Missing blank line before return statement
Loading history...
150 1068
        });
151
        $app['eccube.repository.order'] = $app->share(function () use ($app) {
152
            return $app['orm.em']->getRepository('Eccube\Entity\Order');
153 1068
        });
154
        $app['eccube.repository.product'] = $app->share(function () use ($app) {
155 70
            $productRepository = $app['orm.em']->getRepository('Eccube\Entity\Product');
156 70
            return $productRepository;
0 ignored issues
show
introduced by
Missing blank line before return statement
Loading history...
157 1068
        });
158
        $app['eccube.repository.product_image'] = $app->share(function () use ($app) {
159
            return $app['orm.em']->getRepository('Eccube\Entity\ProductImage');
160 1068
        });
161
        $app['eccube.repository.product_class'] = $app->share(function () use ($app) {
162 34
            return $app['orm.em']->getRepository('Eccube\Entity\ProductClass');
163 1068
        });
164
        $app['eccube.repository.product_stock'] = $app->share(function () use ($app) {
165
            return $app['orm.em']->getRepository('Eccube\Entity\ProductStock');
166 1068
        });
167
        $app['eccube.repository.product_tag'] = $app->share(function () use ($app) {
168
            return $app['orm.em']->getRepository('Eccube\Entity\ProductTag');
169 1068
        });
170
        $app['eccube.repository.class_name'] = $app->share(function () use ($app) {
171 261
            return $app['orm.em']->getRepository('Eccube\Entity\ClassName');
172 1068
        });
173
        $app['eccube.repository.class_category'] = $app->share(function () use ($app) {
174 264
            return $app['orm.em']->getRepository('Eccube\Entity\ClassCategory');
175 1068
        });
176
        $app['eccube.repository.customer_favorite_product'] = $app->share(function () use ($app) {
177 571
            return $app['orm.em']->getRepository('Eccube\Entity\CustomerFavoriteProduct');
178 1068
        });
179
        $app['eccube.repository.base_info'] = $app->share(function () use ($app) {
180 669
            $BaseInfoRepository = $app['orm.em']->getRepository('Eccube\Entity\BaseInfo');
181 669
            $BaseInfoRepository->setApplication($app);
182
183 669
            return $BaseInfoRepository;
184 1068
        });
185
        $app['eccube.repository.tax_rule'] = $app->share(function () use ($app) {
186 206
            $taxRuleRepository = $app['orm.em']->getRepository('Eccube\Entity\TaxRule');
187 206
            $taxRuleRepository->setApplication($app);
188
189 206
            return $taxRuleRepository;
190 1068
        });
191
        $app['eccube.repository.page_layout'] = $app->share(function () use ($app) {
192 193
            $pageLayoutRepository = $app['orm.em']->getRepository('Eccube\Entity\PageLayout');
193 193
            $pageLayoutRepository->setApplication($app);
194
195 193
            return $pageLayoutRepository;
196 1068
        });
197
        $app['eccube.repository.block'] = $app->share(function () use ($app) {
198 14
            $blockRepository = $app['orm.em']->getRepository('Eccube\Entity\Block');
199 14
            $blockRepository->setApplication($app);
200
201 14
            return $blockRepository;
202 1068
        });
203
        $app['eccube.repository.order'] = $app->share(function () use ($app) {
204 133
            $orderRepository = $app['orm.em']->getRepository('Eccube\Entity\Order');
205 133
            $orderRepository->setApplication($app);
206
207 133
            return $orderRepository;
208 1068
        });
209
        $app['eccube.repository.customer_address'] = $app->share(function () use ($app) {
210 86
            return $app['orm.em']->getRepository('Eccube\Entity\CustomerAddress');
211 1068
        });
212
        $app['eccube.repository.shipping'] = $app->share(function () use ($app) {
213 4
            return $app['orm.em']->getRepository('Eccube\Entity\Shipping');
214 1068
        });
215
        $app['eccube.repository.customer_status'] = $app->share(function () use ($app) {
216 2
            return $app['orm.em']->getRepository('Eccube\Entity\Master\CustomerStatus');
217 1068
        });
218
        $app['eccube.repository.order_status'] = $app->share(function () use ($app) {
219 160
            return $app['orm.em']->getRepository('Eccube\Entity\Master\OrderStatus');
220 1068
        });
221
        $app['eccube.repository.mail_template'] = $app->share(function () use ($app) {
222 12
            return $app['orm.em']->getRepository('Eccube\Entity\MailTemplate');
223 1068
        });
224
        $app['eccube.repository.csv'] = $app->share(function () use ($app) {
225 8
            return $app['orm.em']->getRepository('Eccube\Entity\Csv');
226 1068
        });
227
        $app['eccube.repository.template'] = $app->share(function () use ($app) {
228 1
            return $app['orm.em']->getRepository('Eccube\Entity\Template');
229 1068
        });
230
        $app['eccube.repository.authority_role'] = $app->share(function () use ($app) {
231 279
            return $app['orm.em']->getRepository('Eccube\Entity\AuthorityRole');
232 1068
        });
233
234
        $app['paginator'] = $app->protect(function () {
235 23
            $paginator = new \Knp\Component\Pager\Paginator();
236 23
            $paginator->subscribe(new \Eccube\EventListener\PaginatorListener());
237
238 23
            return $paginator;
239 1068
        });
240
241
        $app['eccube.repository.help'] = $app->share(function () use ($app) {
242 10
            return $app['orm.em']->getRepository('Eccube\Entity\Help');
243 1068
        });
244
        $app['eccube.repository.plugin'] = $app->share(function () use ($app) {
245 7
            return $app['orm.em']->getRepository('Eccube\Entity\Plugin');
246 1068
        });
247
        $app['eccube.repository.plugin_event_handler'] = $app->share(function () use ($app) {
248 2
            return $app['orm.em']->getRepository('Eccube\Entity\PluginEventHandler');
249 1068
        });
250
        // em
251 1068
        if (isset($app['orm.em'])) {
252
            $app['orm.em'] = $app->share($app->extend('orm.em', function (\Doctrine\ORM\EntityManager $em, \Silex\Application $app) {
253
                // tax_rule
254 1068
                $taxRuleRepository = $em->getRepository('Eccube\Entity\TaxRule');
255 1068
                $taxRuleRepository->setApplication($app);
256 1068
                $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...
257 1068
                $em->getEventManager()->addEventSubscriber(new \Eccube\Doctrine\EventSubscriber\TaxRuleEventSubscriber($taxRuleService));
258
259
                // save
260 1068
                $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...
261 1068
                $em->getEventManager()->addEventSubscriber($saveEventSubscriber);
262
263
                // clear cache
264 1068
                $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...
265 1068
                $em->getEventManager()->addEventSubscriber($clearCacheEventSubscriber);
266
267
                // filters
268 1068
                $config = $em->getConfiguration();
269 1068
                $config->addFilter("soft_delete", '\Eccube\Doctrine\Filter\SoftDeleteFilter');
270 1068
                $config->addFilter("nostock_hidden", '\Eccube\Doctrine\Filter\NoStockHiddenFilter');
271 1068
                $config->addFilter("incomplete_order_status_hidden", '\Eccube\Doctrine\Filter\OrderStatusFilter');
272 1068
                $em->getFilters()->enable('soft_delete');
273
274 1068
                return $em;
275 1068
            }));
276
        }
277
278
        // Form\Type
279
        $app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function ($extensions) use ($app) {
280 570
            $extensions[] = new \Eccube\Form\Extension\HelpTypeExtension();
281 570
            $extensions[] = new \Eccube\Form\Extension\FreezeTypeExtension();
282
283 570
            return $extensions;
284 1068
        }));
285 1068
        $app['form.types'] = $app->share($app->extend('form.types', function ($types) use ($app) {
286 570
            $types[] = new \Eccube\Form\Type\NameType($app['config']);
287 570
            $types[] = new \Eccube\Form\Type\KanaType($app['config']);
288 570
            $types[] = new \Eccube\Form\Type\TelType($app['config']);
289 570
            $types[] = new \Eccube\Form\Type\FaxType(); // 削除予定
290 570
            $types[] = new \Eccube\Form\Type\ZipType($app['config']);
291 570
            $types[] = new \Eccube\Form\Type\AddressType($app['config']);
292 570
            $types[] = new \Eccube\Form\Type\RepeatedEmailType();
293 570
            $types[] = new \Eccube\Form\Type\RepeatedPasswordType($app['config']);
294 570
            $types[] = new \Eccube\Form\Type\PriceType($app['config']);
295
296 570
            $types[] = new \Eccube\Form\Type\MasterType();
297 570
            $types[] = new \Eccube\Form\Type\Master\JobType();
298 570
            $types[] = new \Eccube\Form\Type\Master\CustomerStatusType();
299 570
            $types[] = new \Eccube\Form\Type\Master\OrderStatusType();
300 570
            $types[] = new \Eccube\Form\Type\Master\CalcRuleType();
301 570
            $types[] = new \Eccube\Form\Type\Master\SexType();
302 570
            $types[] = new \Eccube\Form\Type\Master\DispType();
303 570
            $types[] = new \Eccube\Form\Type\Master\PrefType();
304 570
            $types[] = new \Eccube\Form\Type\Master\ProductTypeType();
305 570
            $types[] = new \Eccube\Form\Type\Master\ProductListMaxType();
306 570
            $types[] = new \Eccube\Form\Type\Master\ProductListOrderByType();
307 570
            $types[] = new \Eccube\Form\Type\Master\PageMaxType();
308 570
            $types[] = new \Eccube\Form\Type\Master\CsvType();
309 570
            $types[] = new \Eccube\Form\Type\Master\DeliveryDateType();
310 570
            $types[] = new \Eccube\Form\Type\Master\PaymentType();
311 570
            $types[] = new \Eccube\Form\Type\Master\MailTemplateType();
312 570
            $types[] = new \Eccube\Form\Type\Master\CategoryType();
313 570
            $types[] = new \Eccube\Form\Type\Master\TagType();
314
315 570
            $types[] = new \Eccube\Form\Type\CustomerType($app); // 削除予定
316
317 570
            if (isset($app['security']) && isset($app['eccube.repository.customer_favorite_product'])) {
318 570
                $types[] = new \Eccube\Form\Type\AddCartType($app['config'], $app['security'], $app['eccube.repository.customer_favorite_product']);
319
            }
320 570
            $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...
321 570
            $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...
322 570
            $types[] = new \Eccube\Form\Type\OrderSearchType($app);
323 570
            $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...
324 570
            $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...
325 570
            $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...
326 570
            $types[] = new \Eccube\Form\Type\ShoppingType();
327
328
            // front
329 570
            $types[] = new \Eccube\Form\Type\Front\EntryType($app['config']);
330 570
            $types[] = new \Eccube\Form\Type\Front\ContactType($app['config']);
331 570
            $types[] = new \Eccube\Form\Type\Front\NonMemberType($app['config']);
332 570
            $types[] = new \Eccube\Form\Type\Front\ShoppingShippingType();
333 570
            $types[] = new \Eccube\Form\Type\Front\CustomerAddressType($app['config']);
334 570
            $types[] = new \Eccube\Form\Type\Front\ForgotType();
335 570
            $types[] = new \Eccube\Form\Type\Front\CustomerLoginType($app['session']);
336
337
            // admin
338 570
            $types[] = new \Eccube\Form\Type\Admin\LoginType($app['session']);
339 570
            $types[] = new \Eccube\Form\Type\Admin\ChangePasswordType($app);
340 570
            $types[] = new \Eccube\Form\Type\Admin\ProductType($app);
341 570
            $types[] = new \Eccube\Form\Type\Admin\ProductClassType($app);
342 570
            $types[] = new \Eccube\Form\Type\Admin\SearchProductType($app);
343 570
            $types[] = new \Eccube\Form\Type\Admin\SearchCustomerType($app['config']);
344 570
            $types[] = new \Eccube\Form\Type\Admin\SearchOrderType($app['config']);
345 570
            $types[] = new \Eccube\Form\Type\Admin\CustomerType($app['config']);
346 570
            $types[] = new \Eccube\Form\Type\Admin\ClassNameType($app['config']);
347 570
            $types[] = new \Eccube\Form\Type\Admin\ClassCategoryType($app['config']);
348 570
            $types[] = new \Eccube\Form\Type\Admin\CategoryType($app['config']);
349 570
            $types[] = new \Eccube\Form\Type\Admin\MemberType($app['config']);
350 570
            $types[] = new \Eccube\Form\Type\Admin\AuthorityRoleType($app['config']);
351 570
            $types[] = new \Eccube\Form\Type\Admin\PageLayoutType();
352 570
            $types[] = new \Eccube\Form\Type\Admin\NewsType($app['config']);
353 570
            $types[] = new \Eccube\Form\Type\Admin\TemplateType($app['config']);
354 570
            $types[] = new \Eccube\Form\Type\Admin\SecurityType($app);
355 570
            $types[] = new \Eccube\Form\Type\Admin\CsvImportType($app);
356 570
            $types[] = new \Eccube\Form\Type\Admin\ShopMasterType($app['config']);
357 570
            $types[] = new \Eccube\Form\Type\Admin\TradelawType($app['config']);
358 570
            $types[] = new \Eccube\Form\Type\Admin\OrderType($app);
359 570
            $types[] = new \Eccube\Form\Type\Admin\OrderDetailType($app);
360 570
            $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...
361 570
            $types[] = new \Eccube\Form\Type\Admin\ShipmentItemType($app);
362 570
            $types[] = new \Eccube\Form\Type\Admin\PaymentRegisterType($app);
363 570
            $types[] = new \Eccube\Form\Type\Admin\TaxRuleType();
364 570
            $types[] = new \Eccube\Form\Type\Admin\MainEditType($app);
365 570
            $types[] = new \Eccube\Form\Type\Admin\MailType();
366 570
            $types[] = new \Eccube\Form\Type\Admin\CustomerAgreementType($app);
367 570
            $types[] = new \Eccube\Form\Type\Admin\BlockType($app);
368 570
            $types[] = new \Eccube\Form\Type\Admin\DeliveryType();
369 570
            $types[] = new \Eccube\Form\Type\Admin\DeliveryFeeType();
370 570
            $types[] = new \Eccube\Form\Type\Admin\DeliveryTimeType($app['config']);
371 570
            $types[] = new \Eccube\Form\Type\Admin\LogType($app['config']);
372 570
            $types[] = new \Eccube\Form\Type\Admin\CacheType($app['config']);
373
374 570
            $types[] = new \Eccube\Form\Type\Admin\MasterdataType($app);
375 570
            $types[] = new \Eccube\Form\Type\Admin\MasterdataEditType($app);
376
377 570
            $types[] = new \Eccube\Form\Type\Admin\PluginLocalInstallType();
378 570
            $types[] = new \Eccube\Form\Type\Admin\PluginManagementType();
379
380 570
            return $types;
381 1068
        }));
382
    }
383
384
    /**
0 ignored issues
show
introduced by
Doc comment for parameter "$app" missing
Loading history...
385
     * Bootstraps the application.
386
     *
387
     * This method is called after all services are registered
388
     * and should be used for "dynamic" configuration (whenever
389
     * a service must be requested).
390
     */
391
    public function boot(BaseApplication $app)
392
    {
393
    }
394
}
395