Skip to content

Commit c420516

Browse files
committed
Merge branch 'develop' of github.com:magento/magento-coding-standard into AC-678
2 parents 9286ff9 + 3c477b1 commit c420516

9 files changed

+817
-0
lines changed

Magento2/Sniffs/Legacy/LayoutSniff.php

Lines changed: 404 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types = 1);
7+
8+
namespace Magento2\Sniffs\Legacy;
9+
10+
use PHP_CodeSniffer\Files\File;
11+
use PHP_CodeSniffer\Sniffs\Sniff;
12+
13+
class ObsoleteConnectionSniff implements Sniff
14+
{
15+
private const ERROR_CODE_METHOD = 'FoundObsoleteMethod';
16+
17+
/**
18+
* @var string[]
19+
*/
20+
private $obsoleteMethods = [
21+
'_getReadConnection',
22+
'_getWriteConnection',
23+
'_getReadAdapter',
24+
'_getWriteAdapter',
25+
'getReadConnection',
26+
'getWriteConnection',
27+
'getReadAdapter',
28+
'getWriteAdapter',
29+
];
30+
31+
/**
32+
* @inheritdoc
33+
*/
34+
public function register()
35+
{
36+
return [
37+
T_OBJECT_OPERATOR,
38+
T_FUNCTION
39+
];
40+
}
41+
42+
/**
43+
* @inheritdoc
44+
*/
45+
public function process(File $phpcsFile, $stackPtr)
46+
{
47+
$this->validateObsoleteMethod($phpcsFile, $stackPtr);
48+
}
49+
50+
/**
51+
* Check if obsolete methods are used
52+
*
53+
* @param File $phpcsFile
54+
* @param int $stackPtr
55+
*/
56+
private function validateObsoleteMethod(File $phpcsFile, int $stackPtr)
57+
{
58+
$tokens = $phpcsFile->getTokens();
59+
$stringPos = $phpcsFile->findNext(T_STRING, $stackPtr + 1);
60+
61+
foreach ($this->obsoleteMethods as $method) {
62+
if ($tokens[$stringPos]['content'] === $method) {
63+
$phpcsFile->addWarning(
64+
sprintf("Contains obsolete method: %s. Please use getConnection method instead.", $method),
65+
$stackPtr,
66+
self::ERROR_CODE_METHOD
67+
);
68+
}
69+
}
70+
}
71+
}
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<page layout="3columns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
9+
<update handle="adminhtml_user_edit"/>
10+
<body>
11+
<attribute name="id" value="html-body"/>
12+
<block name="require.js" class="Magento\Framework\View\Element\Template" template="Magento_Theme::page/js/require_js.phtml" />
13+
<referenceContainer name="adminhtml.permission.user.edit.tabs">
14+
<block class="Magento\RequireJs\Block\Html\Head\Config" name="requirejs-config"/>
15+
<block class="Magento\Framework\View\Element\Js\Cookie" name="js_cookies" template="Magento_Theme::js/cookie.phtml">
16+
<arguments>
17+
<argument name="session_config" xsi:type="object">Magento\Theme\ViewModel\Block\SessionConfig</argument>
18+
</arguments>
19+
</block>
20+
<block class="Magento\Theme\Block\Html\Notices" name="global_notices" template="Magento_Theme::html/notices.phtml"/>
21+
</referenceContainer>
22+
<referenceBlock name="adminhtml.permission.user.edit">
23+
<block class="Magento\Theme\Block\Html\Head\Css">
24+
</block>
25+
<block class="Magento\Theme\Block\Html\Header" name="header" as="header" before="-">
26+
<arguments>
27+
<argument name="show_part" xsi:type="string">welcome</argument>
28+
</arguments>
29+
</block>
30+
</referenceBlock>
31+
<referenceContainer name="main.content">
32+
<block class="Magento\Framework\View\Element\Template" name="skip_to_content.target" before="-" template="Magento_Theme::html/skiptarget.phtml">
33+
<arguments>
34+
<argument name="target_id" xsi:type="string">contentarea</argument>
35+
</arguments>
36+
</block>
37+
</referenceContainer>
38+
<referenceContainer name="header.container">
39+
<container name="header.panel.wrapper" htmlClass="panel wrapper" htmlTag="div" before="-">
40+
<container name="header.panel" label="Page Header Panel" htmlTag="div" htmlClass="panel header">
41+
<block class="Magento\Framework\View\Element\Template" name="skip_to_content" template="Magento_Theme::html/skip.phtml">
42+
<arguments>
43+
<argument name="target" xsi:type="string">contentarea</argument>
44+
<argument name="label" translate="true" xsi:type="string">Skip to Content</argument>
45+
</arguments>
46+
</block>
47+
<block class="Magento\Store\Block\Switcher" name="store_language" as="store_language" template="Magento_Store::switch/languages.phtml">
48+
<arguments>
49+
<argument name="view_model" xsi:type="object">Magento\Store\ViewModel\SwitcherUrlProvider</argument>
50+
</arguments>
51+
</block>
52+
<block class="Magento\Customer\Block\Account\Navigation" name="top.links">
53+
<arguments>
54+
<argument name="css_class" xsi:type="string">header links</argument>
55+
</arguments>
56+
</block>
57+
</container>
58+
</container>
59+
<container name="header-wrapper" label="Page Header" as="header-wrapper" htmlTag="div" htmlClass="header content">
60+
<block class="Magento\Theme\Block\Html\Header\Logo" name="logo">
61+
<arguments>
62+
<argument name="logoPathResolver" xsi:type="object">Magento\Theme\ViewModel\Block\Html\Header\LogoPathResolver</argument>
63+
<argument name="logo_size_resolver" xsi:type="object">Magento\Theme\ViewModel\Block\Html\Header\LogoSizeResolver</argument>
64+
</arguments>
65+
</block>
66+
</container>
67+
</referenceContainer>
68+
<referenceContainer name="page.top">
69+
<block class="Magento\Framework\View\Element\Template" name="navigation.sections" before="-" template="Magento_Theme::html/sections.phtml">
70+
<arguments>
71+
<argument name="group_name" xsi:type="string">navigation-sections</argument>
72+
<argument name="group_css" xsi:type="string">nav-sections</argument>
73+
</arguments>
74+
<block class="Magento\Framework\View\Element\Template" name="store.menu" group="navigation-sections" template="Magento_Theme::html/container.phtml">
75+
<arguments>
76+
<argument name="title" translate="true" xsi:type="string">Menu</argument>
77+
</arguments>
78+
<block class="Magento\Theme\Block\Html\Topmenu" name="catalog.topnav" template="Magento_Theme::html/topmenu.phtml" ttl="3600" before="-"/>
79+
</block>
80+
<block class="Magento\Framework\View\Element\Text" name="store.links" group="navigation-sections">
81+
<arguments>
82+
<argument name="title" translate="true" xsi:type="string">Account</argument>
83+
<argument name="use_force" xsi:type="boolean">true</argument>
84+
<argument name="text" xsi:type="string"><![CDATA[<!-- Account links -->]]></argument>
85+
</arguments>
86+
</block>
87+
<block class="Magento\Framework\View\Element\Template" name="store.settings" group="navigation-sections" template="Magento_Theme::html/container.phtml">
88+
<arguments>
89+
<argument name="title" translate="true" xsi:type="string">Settings</argument>
90+
</arguments>
91+
<block class="Magento\Store\Block\Switcher" name="store.settings.language" template="Magento_Store::switch/languages.phtml">
92+
<arguments>
93+
<argument name="id_modifier" xsi:type="string">nav</argument>
94+
<argument name="view_model" xsi:type="object">Magento\Store\ViewModel\SwitcherUrlProvider</argument>
95+
</arguments>
96+
</block>
97+
<block class="Magento\Directory\Block\Currency" name="store.settings.currency" template="Magento_Directory::currency.phtml">
98+
<arguments>
99+
<argument name="id_modifier" xsi:type="string">nav</argument>
100+
</arguments>
101+
</block>
102+
</block>
103+
</block>
104+
<container name="top.container" as="topContainer" label="After Page Header Top" htmlTag="div" htmlClass="top-container"/>
105+
<block class="Magento\Theme\Block\Html\Breadcrumbs" name="breadcrumbs" as="breadcrumbs"/>
106+
</referenceContainer>
107+
<referenceContainer name="columns.top">
108+
<block class="Magento\Theme\Block\Html\Title" name="page.main.title" template="Magento_Theme::html/title.phtml"/>
109+
<container name="page.messages" htmlTag="div" htmlClass="page messages">
110+
<block class="Magento\Framework\View\Element\Template" name="ajax.message.placeholder" template="Magento_Theme::html/messages.phtml"/>
111+
<block class="Magento\Framework\View\Element\Messages" name="messages" as="messages" template="Magento_Theme::messages.phtml"/>
112+
</container>
113+
</referenceContainer>
114+
<referenceContainer name="main">
115+
<container name="content.top" label="Main Content Top">
116+
<block name="main_css_preloader" as="main_css_preloader" template="Magento_Theme::html/main_css_preloader.phtml" ifconfig="dev/css/use_css_critical_path"/>
117+
</container>
118+
<container name="content" label="Main Content Area"/>
119+
<container name="content.aside" label="Main Content Aside"/>
120+
<container name="content.bottom" label="Main Content Bottom"/>
121+
</referenceContainer>
122+
<referenceContainer name="page.bottom.container">
123+
<container name="page.bottom" label="Before Page Footer" htmlTag="div" htmlClass="content"/>
124+
</referenceContainer>
125+
<referenceContainer name="footer-container">
126+
<container name="footer" as="footer" label="Page Footer" htmlTag="div" htmlClass="footer content">
127+
<block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" template="Magento_Store::switch/stores.phtml"/>
128+
<block class="Magento\Framework\View\Element\Html\Links" name="footer_links">
129+
<arguments>
130+
<argument name="css_class" xsi:type="string">footer links</argument>
131+
</arguments>
132+
</block>
133+
<block class="Magento\Theme\Block\Html\Footer" name="copyright" template="Magento_Theme::html/copyright.phtml"/>
134+
<block class="Magento\Framework\View\Element\Template" name="report.bugs" template="Magento_Theme::html/bugreport.phtml" ifconfig="design/footer/report_bugs"/>
135+
</container>
136+
</referenceContainer>
137+
<referenceContainer name="before.body.end">
138+
<block class="Magento\Theme\Block\Html\Footer" name="absolute_footer" template="Magento_Theme::html/absolute_footer.phtml" />
139+
</referenceContainer>
140+
<referenceContainer name="content">
141+
<block class="Magento\Framework\View\Element\FormKey" name="formkey"/>
142+
</referenceContainer>
143+
<referenceContainer name="form.additional.info">
144+
<block class="Magento\Captcha\Block\Captcha" name="captcha" cacheable="false">
145+
<action method="notAllowedMethod">
146+
<argument name="formId" xsi:type="string">backend_login</argument>
147+
</action>
148+
<action method="anotherNotallowedMethod">
149+
<argument name="width" xsi:type="string">226</argument>
150+
</action>
151+
<action method="setImgHeight">
152+
<argument name="width" xsi:type="string">50</argument>
153+
</action>
154+
</block>
155+
</referenceContainer>
156+
</body>
157+
</page>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_layout.xsd">
9+
<update handle="2columns-left" />
10+
11+
<container name="columns.top.wrapper" htmlTag="div" htmlClass="page-main" output="toHtml"/>
12+
<move element="columns.top" destination="columns.top.wrapper"/>
13+
<move element="columns.top.wrapper" destination="page.wrapper" after="page.top"/>
14+
<move element="category.view.container" destination="page.wrapper" after="columns.top.wrapper"/>
15+
16+
<container name="category.image.wrapper" htmlTag="div" htmlClass="page-main"/>
17+
<move element="category.image" destination="category.image.wrapper"/>
18+
<move element="category.image.wrapper" destination="category.view.container"/>
19+
20+
<container name="category.description.wrapper" htmlTag="div"/>
21+
<move element="category.description" destination="category.description.wrapper"/>
22+
<move element="category.description.wrapper" destination="category.view.container" after="category.image.wrapper"/>
23+
24+
<container name="category.cms.wrapper" htmlTag="div" htmlClass="page-main"/>
25+
<move element="category.cms" destination="category.cms.wrapper"/>
26+
<move element="category.cms.wrapper" destination="category.view.container" after="category.description.wrapper"/>
27+
28+
<block name="list" class="Magento\Framework\View\Element\Text\ListText" />
29+
</layout>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
9+
<body>
10+
<referenceContainer name="checkout.onepage.review.info.items.after">
11+
<block class="Magento\Paypal\Block\Iframe" name="paypal.iframe" cacheable="false"/>
12+
</referenceContainer>
13+
<referenceBlock name="checkout.onepage.review.button">
14+
<action method="setTemplate">
15+
<argument name="template" xsi:type="helper" helper="Magento\Paypal\Helper\Hss">
16+
<param name="name">Magento_Paypal::hss/review/button.phtml</param>
17+
</argument>
18+
<argument name="template" xsi:type="helper" helper="Magento/Paypal/Helper/Hss::getReviewButtonTemplate">
19+
<param name="name">Magento_Paypal::hss/review/button.phtml</param>
20+
</argument>
21+
<argument name="template" xsi:type="helper" helper="Magento\Paypal\Helper\Hss::getReviewButtonTemplate">
22+
<param name="name">Magento_Paypal::hss/review/button.phtml</param>
23+
</argument>
24+
</action>
25+
</referenceBlock>
26+
</body>
27+
</page>
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
/**
3+
* Copyright © Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento2\Tests\Legacy;
7+
8+
use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest;
9+
10+
class LayoutUnitTest extends AbstractSniffUnitTest
11+
{
12+
/**
13+
* @inheritdoc
14+
*/
15+
public function getErrorList($testFile = '')
16+
{
17+
if ($testFile === 'LayoutUnitTest.1.xml') {
18+
return [
19+
13 => 1,
20+
22 => 1,
21+
23 => 1,
22+
145 => 1,
23+
148 => 1,
24+
];
25+
}
26+
if ($testFile === 'LayoutUnitTest.2.xml') {
27+
return [
28+
11 => 1,
29+
28 => 1,
30+
];
31+
}
32+
if ($testFile === 'LayoutUnitTest.3.xml') {
33+
return [
34+
15 => 1,
35+
18 => 1,
36+
];
37+
}
38+
return [];
39+
}
40+
41+
/**
42+
* @inheritdoc
43+
*/
44+
public function getWarningList($testFile = '')
45+
{
46+
return [];
47+
}
48+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
$this->_getReadConnection();
8+
9+
$connection = new Connection();
10+
return $connection->_getWriteConnection();
11+
12+
$this->getMethod(
13+
function($param){
14+
$param->_getWriteAdapter();
15+
}
16+
);
17+
18+
$writeAdapter = $this->getWriteAdapter();
19+
20+
protected function getConnection()
21+
{
22+
return $this->_resource->getReadConnection($this->connection);
23+
}
24+
25+
return $this->_getReadAdapter();
26+
27+
$this->getReadAdapterMyMehtod();
28+
29+
private function getReadAdapter()
30+
{
31+
32+
}
33+
34+
$getWriteAdapter = new WriteAdapter();
35+
36+
$getWriteAdapter = $this->getWriteAdapter();

0 commit comments

Comments
 (0)