Skip to content

Commit f9c0107

Browse files
committed
Analyze most of the source code with phpstan. Provide baseline.
This patch makes phpstan analyze almost whole OpenMage source code. To make the phpstan green despite not all issues are yet solved, a baseline file is introduced, which contains "known issues". Thanks to this approach we can make sure new changes are not introducing new issues, and its easy to fix issues from baseline one by one. This patch also fixes some issues along the way: 1. Fix non existing class name Mage_Catalog_Model_Entity_Product_Collection with correct one Mage_Catalog_Model_Resource_Product_Collection 2. Correct casing of the class name Zend_Pdf_Color_Rgb 3. few minor phpdocs changes 4. update macopedia/phpstan-magento1 to newest version which brings performance improvements 5. add #[\ReturnTypeWillChange] in some places to avoid errors on php8.1
1 parent 8e9ac45 commit f9c0107

File tree

17 files changed

+1272
-86
lines changed

17 files changed

+1272
-86
lines changed

.github/phpstan-baseline.neon

Lines changed: 1157 additions & 0 deletions
Large diffs are not rendered by default.

.github/phpstan.neon

Lines changed: 89 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,103 @@
11
includes:
22
- ../vendor/macopedia/phpstan-magento1/extension.neon
3+
- phpstan-baseline.neon
34
parameters:
45
magentoRootPath: %currentWorkingDirectory%
56
paths:
67
#lets start small with just few modules
7-
- %currentWorkingDirectory%/app/code/core/Mage/Admin
8-
# - %currentWorkingDirectory%/app/code/core/Mage/Adminhtml
9-
# - %currentWorkingDirectory%/app/code/core/Mage/AdminNotification
10-
# - %currentWorkingDirectory%/app/code/core/Mage/Api
11-
# - %currentWorkingDirectory%/app/code/core/Mage/Api2
12-
# - %currentWorkingDirectory%/app/code/core/Mage/Authorizenet
13-
# - %currentWorkingDirectory%/app/code/core/Mage/Backup
14-
# - %currentWorkingDirectory%/app/code/core/Mage/Bundle
15-
# - %currentWorkingDirectory%/app/code/core/Mage/Captcha
16-
# - %currentWorkingDirectory%/app/code/core/Mage/Catalog
17-
# - %currentWorkingDirectory%/app/code/core/Mage/CatalogIndex
18-
# - %currentWorkingDirectory%/app/code/core/Mage/CatalogInventory
19-
# - %currentWorkingDirectory%/app/code/core/Mage/CatalogRule
20-
# - %currentWorkingDirectory%/app/code/core/Mage/CatalogSearch
21-
# - %currentWorkingDirectory%/app/code/core/Mage/Centinel
22-
# - %currentWorkingDirectory%/app/code/core/Mage/Checkout
23-
- %currentWorkingDirectory%/app/code/core/Mage/Cms
24-
# - %currentWorkingDirectory%/app/code/core/Mage/ConfigurableSwatches
25-
# - %currentWorkingDirectory%/app/code/core/Mage/Contacts
26-
# - %currentWorkingDirectory%/app/code/core/Mage/Core
27-
# - %currentWorkingDirectory%/app/code/core/Mage/Cron
28-
# - %currentWorkingDirectory%/app/code/core/Mage/CurrencySymbol
29-
# - %currentWorkingDirectory%/app/code/core/Mage/Customer
30-
# - %currentWorkingDirectory%/app/code/core/Mage/Dataflow
31-
# - %currentWorkingDirectory%/app/code/core/Mage/Directory
32-
# - %currentWorkingDirectory%/app/code/core/Mage/Downloadable
33-
# - %currentWorkingDirectory%/app/code/core/Mage/Eav
34-
# - %currentWorkingDirectory%/app/code/core/Mage/GiftMessage
35-
# - %currentWorkingDirectory%/app/code/core/Mage/GoogleAnalytics
36-
# - %currentWorkingDirectory%/app/code/core/Mage/GoogleCheckout
37-
# - %currentWorkingDirectory%/app/code/core/Mage/ImportExport
38-
# - %currentWorkingDirectory%/app/code/core/Mage/Index
39-
# - %currentWorkingDirectory%/app/code/core/Mage/Install
40-
- %currentWorkingDirectory%/app/code/core/Mage/Log
41-
# - %currentWorkingDirectory%/app/code/core/Mage/Media
42-
# - %currentWorkingDirectory%/app/code/core/Mage/Newsletter
43-
# - %currentWorkingDirectory%/app/code/core/Mage/Oauth
44-
# - %currentWorkingDirectory%/app/code/core/Mage/Page
45-
# - %currentWorkingDirectory%/app/code/core/Mage/PageCache
46-
# - %currentWorkingDirectory%/app/code/core/Mage/Paygate
47-
# - %currentWorkingDirectory%/app/code/core/Mage/Payment
48-
# - %currentWorkingDirectory%/app/code/core/Mage/Paypal
49-
# - %currentWorkingDirectory%/app/code/core/Mage/PaypalUk
50-
# - %currentWorkingDirectory%/app/code/core/Mage/Persistent
51-
# - %currentWorkingDirectory%/app/code/core/Mage/Poll
52-
# - %currentWorkingDirectory%/app/code/core/Mage/ProductAlert
53-
# - %currentWorkingDirectory%/app/code/core/Mage/Rating
54-
# - %currentWorkingDirectory%/app/code/core/Mage/Reports
55-
# - %currentWorkingDirectory%/app/code/core/Mage/Review
56-
# - %currentWorkingDirectory%/app/code/core/Mage/Rss
57-
# - %currentWorkingDirectory%/app/code/core/Mage/Rule
58-
# - %currentWorkingDirectory%/app/code/core/Mage/Sales
59-
# - %currentWorkingDirectory%/app/code/core/Mage/SalesRule
60-
# - %currentWorkingDirectory%/app/code/core/Mage/Sendfriend
61-
# - %currentWorkingDirectory%/app/code/core/Mage/Shipping
62-
# - %currentWorkingDirectory%/app/code/core/Mage/Sitemap
63-
# - %currentWorkingDirectory%/app/code/core/Mage/Tag
64-
# - %currentWorkingDirectory%/app/code/core/Mage/Tax
65-
# - %currentWorkingDirectory%/app/code/core/Mage/Uploader
66-
# - %currentWorkingDirectory%/app/code/core/Mage/Usa
67-
# - %currentWorkingDirectory%/app/code/core/Mage/Weee
68-
# - %currentWorkingDirectory%/app/code/core/Mage/Widget
69-
# - %currentWorkingDirectory%/app/code/core/Mage/Wishlist
8+
- %currentWorkingDirectory%/app/code/core/Mage/Admin
9+
- %currentWorkingDirectory%/app/code/core/Mage/Adminhtml
10+
- %currentWorkingDirectory%/app/code/core/Mage/AdminNotification
11+
- %currentWorkingDirectory%/app/code/core/Mage/Api
12+
- %currentWorkingDirectory%/app/code/core/Mage/Api2
13+
- %currentWorkingDirectory%/app/code/core/Mage/Authorizenet
14+
- %currentWorkingDirectory%/app/code/core/Mage/Backup
15+
- %currentWorkingDirectory%/app/code/core/Mage/Bundle
16+
- %currentWorkingDirectory%/app/code/core/Mage/Captcha
17+
- %currentWorkingDirectory%/app/code/core/Mage/Catalog
18+
- %currentWorkingDirectory%/app/code/core/Mage/CatalogIndex
19+
- %currentWorkingDirectory%/app/code/core/Mage/CatalogInventory
20+
- %currentWorkingDirectory%/app/code/core/Mage/CatalogRule
21+
- %currentWorkingDirectory%/app/code/core/Mage/CatalogSearch
22+
# - %currentWorkingDirectory%/app/code/core/Mage/Centinel
23+
- %currentWorkingDirectory%/app/code/core/Mage/Checkout
24+
- %currentWorkingDirectory%/app/code/core/Mage/Cms
25+
- %currentWorkingDirectory%/app/code/core/Mage/ConfigurableSwatches
26+
- %currentWorkingDirectory%/app/code/core/Mage/Contacts
27+
- %currentWorkingDirectory%/app/code/core/Mage/Core
28+
- %currentWorkingDirectory%/app/code/core/Mage/Cron
29+
- %currentWorkingDirectory%/app/code/core/Mage/CurrencySymbol
30+
- %currentWorkingDirectory%/app/code/core/Mage/Customer
31+
- %currentWorkingDirectory%/app/code/core/Mage/Dataflow
32+
- %currentWorkingDirectory%/app/code/core/Mage/Directory
33+
- %currentWorkingDirectory%/app/code/core/Mage/Downloadable
34+
- %currentWorkingDirectory%/app/code/core/Mage/Eav
35+
- %currentWorkingDirectory%/app/code/core/Mage/GiftMessage
36+
- %currentWorkingDirectory%/app/code/core/Mage/GoogleAnalytics
37+
- %currentWorkingDirectory%/app/code/core/Mage/GoogleCheckout
38+
- %currentWorkingDirectory%/app/code/core/Mage/ImportExport
39+
- %currentWorkingDirectory%/app/code/core/Mage/Index
40+
- %currentWorkingDirectory%/app/code/core/Mage/Install
41+
- %currentWorkingDirectory%/app/code/core/Mage/Log
42+
- %currentWorkingDirectory%/app/code/core/Mage/Media
43+
- %currentWorkingDirectory%/app/code/core/Mage/Newsletter
44+
- %currentWorkingDirectory%/app/code/core/Mage/Oauth
45+
- %currentWorkingDirectory%/app/code/core/Mage/Page
46+
- %currentWorkingDirectory%/app/code/core/Mage/PageCache
47+
- %currentWorkingDirectory%/app/code/core/Mage/Paygate
48+
- %currentWorkingDirectory%/app/code/core/Mage/Payment
49+
- %currentWorkingDirectory%/app/code/core/Mage/Paypal
50+
# - %currentWorkingDirectory%/app/code/core/Mage/PaypalUk
51+
- %currentWorkingDirectory%/app/code/core/Mage/Persistent
52+
- %currentWorkingDirectory%/app/code/core/Mage/Poll
53+
- %currentWorkingDirectory%/app/code/core/Mage/ProductAlert
54+
- %currentWorkingDirectory%/app/code/core/Mage/Rating
55+
- %currentWorkingDirectory%/app/code/core/Mage/Reports
56+
- %currentWorkingDirectory%/app/code/core/Mage/Review
57+
- %currentWorkingDirectory%/app/code/core/Mage/Rss
58+
- %currentWorkingDirectory%/app/code/core/Mage/Rule
59+
- %currentWorkingDirectory%/app/code/core/Mage/Sales
60+
- %currentWorkingDirectory%/app/code/core/Mage/SalesRule
61+
- %currentWorkingDirectory%/app/code/core/Mage/Sendfriend
62+
- %currentWorkingDirectory%/app/code/core/Mage/Shipping
63+
- %currentWorkingDirectory%/app/code/core/Mage/Sitemap
64+
- %currentWorkingDirectory%/app/code/core/Mage/Tag
65+
- %currentWorkingDirectory%/app/code/core/Mage/Tax
66+
- %currentWorkingDirectory%/app/code/core/Mage/Uploader
67+
# - %currentWorkingDirectory%/app/code/core/Mage/Usa
68+
- %currentWorkingDirectory%/app/code/core/Mage/Widget
69+
# - %currentWorkingDirectory%/app/code/core/Mage/Weee
70+
- %currentWorkingDirectory%/app/code/core/Mage/Wishlist
7071
excludePaths:
7172
#incompatible interfaces
7273
- */app/code/core/Mage/Admin/Model/Acl/Assert/Ip.php
7374
- */app/code/core/Mage/Admin/Model/Acl/Assert/Time.php
75+
- */app/code/core/Mage/Api/Model/Acl/Assert/Ip.php
76+
- */app/code/core/Mage/Api/Model/Acl/Assert/Time.php
77+
- */app/code/core/Mage/Adminhtml/Block/Widget/Grid/Block.php
78+
- */app/code/core/Mage/Core/Model/Mysql4/Design/Theme/Collection.php
79+
# deprecated _getHelper()
80+
- */app/code/core/Mage/Adminhtml/Controller/Rss/Abstract.php
81+
- */app/code/core/Mage/Adminhtml/controllers/Rss/OrderController.php
82+
- */app/code/core/Mage/Adminhtml/controllers/Rss/CatalogController.php
83+
84+
# contains 1 abstract method and must therefore be declared abstract or implement the remaining methods
85+
- */app/code/core/Mage/Dataflow/Model/Session/Adapter/Http.php
86+
- */app/code/core/Mage/Dataflow/Model/Convert/Iterator/Http.php
87+
- */app/code/core/Mage/Dataflow/Model/Convert/Iterator/File/Csv.php
88+
89+
# Cannot declare class Varien_Date, because the name is already in use
90+
- */app/code/core/Mage/Catalog/Model/Product/Option/Type/Date.php
91+
92+
# Class phpseclib\Net\SSH2 not found.
93+
- */Paypal/Model/Report/Settlement.php
94+
95+
# Class backup/db was not found while trying to analyse it
96+
- */Adminhtml/controllers/System/BackupController.php
97+
98+
# Dataflow/Model/Convert/Iterator.php
99+
- */Dataflow/Model/Convert/Iterator.php
74100

75-
- */app/code/core/Mage/Admin/Model/Config.php
76-
- */app/code/core/Mage/Admin/Model/Roles.php
77-
- */app/code/core/Mage/Admin/Model/User.php
78-
# due to errors (variable passed to a factory):
79-
- */app/code/core/Mage/Cms/Helper/Page.php
80-
- */app/code/core/Mage/Cms/Helper/Data.php
81101
level: 0
82102
# universalObjectCratesClasses:
83103
# - Varien_Object

app/code/core/Mage/Adminhtml/Controller/Rss/Abstract.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class Mage_Adminhtml_Controller_Rss_Abstract extends Mage_Adminhtml_Controller_A
4141
*/
4242
protected function isFeedEnable($code)
4343
{
44-
return $this->_getHelper('rss')->isRssEnabled()
44+
return Mage::helper('rss')->isRssEnabled()
4545
&& Mage::getStoreConfig('rss/'. $code);
4646
}
4747

@@ -69,6 +69,7 @@ protected function checkFeedEnable($code)
6969
*
7070
* @param string $name
7171
* @return Mage_Core_Helper_Abstract
72+
* @deprecated this method is incompatible with parent class. Use Mage::helper instead
7273
*/
7374
protected function _getHelper($name)
7475
{

app/code/core/Mage/Adminhtml/Helper/Catalog/Product/Edit/Action/Attribute.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class Mage_Adminhtml_Helper_Catalog_Product_Edit_Action_Attribute extends Mage_C
3737
/**
3838
* Selected products for mass-update
3939
*
40-
* @var Mage_Catalog_Model_Entity_Product_Collection
40+
* @var Mage_Catalog_Model_Resource_Product_Collection
4141
*/
4242
protected $_products;
4343

app/code/core/Mage/Api/Model/Wsdl/Config/Element.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ public function getAttributes($source, $namespace = null)
175175
* @param Varien_Simplexml_Element $source
176176
* @return array
177177
*/
178+
#[\ReturnTypeWillChange]
178179
public function getChildren($source = null)
179180
{
180181
Mage::log('Use of deprecated method: '.__METHOD__);
@@ -207,8 +208,9 @@ protected static function _getChildren($source)
207208
/**
208209
* Return if has children
209210
*
210-
* @return boolean
211+
* @return bool
211212
*/
213+
#[\ReturnTypeWillChange]
212214
public function hasChildren()
213215
{
214216
if (!self::_getChildren($this)) {

app/code/core/Mage/Catalog/Model/Convert/Adapter/Product.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ public function save()
503503
}
504504

505505
$collections = $this->getData();
506-
if ($collections instanceof Mage_Catalog_Model_Entity_Product_Collection) {
506+
if ($collections instanceof Mage_Catalog_Model_Resource_Product_Collection) {
507507
$collections = array($collections->getEntity()->getStoreId()=>$collections);
508508
} elseif (!is_array($collections)) {
509509
$this->addException(
@@ -517,7 +517,7 @@ public function save()
517517
foreach ($collections as $storeId => $collection) {
518518
$this->addException(Mage::helper('catalog')->__('Records for "%s" store found.', $stores[$storeId]));
519519

520-
if (!$collection instanceof Mage_Catalog_Model_Entity_Product_Collection) {
520+
if (!$collection instanceof Mage_Catalog_Model_Resource_Product_Collection) {
521521
$this->addException(
522522
Mage::helper('catalog')->__('Product collection expected.'),
523523
Mage_Dataflow_Model_Convert_Exception::FATAL

app/code/core/Mage/Catalog/Model/Design.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected function _apply($package, $theme)
8888
* Apply custom design
8989
*
9090
* @param string $design
91-
* @return bool
91+
* @return null|false
9292
*/
9393
public function applyCustomDesign($design)
9494
{

app/code/core/Mage/Catalog/Model/Product/Attribute/Api.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,10 @@ public function update($attribute, $data)
217217
$model->save();
218218
// clear translation cache because attribute labels are stored in translation
219219
Mage::app()->cleanCache(array(Mage_Core_Model_Translate::CACHE_TAG));
220-
return true;
221220
} catch (Exception $e) {
222221
$this->_fault('unable_to_save', $e->getMessage());
223222
}
223+
return true;
224224
}
225225

226226
/**

app/code/core/Mage/ImportExport/Model/Import/Adapter/Abstract.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ public function key()
159159
* @param int $position The position to seek to.
160160
* @return void
161161
*/
162+
#[\ReturnTypeWillChange]
162163
public function seek($position)
163164
{
164165
Mage::throwException(Mage::helper('importexport')->__('Not implemented yet'));
@@ -169,6 +170,7 @@ public function seek($position)
169170
*
170171
* @return boolean Returns true on success or false on failure.
171172
*/
173+
#[\ReturnTypeWillChange]
172174
public function valid()
173175
{
174176
return !empty($this->_currentRow);

app/code/core/Mage/ImportExport/Model/Import/Adapter/Csv.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ protected function _init()
8181
*
8282
* @return void Any returned value is ignored.
8383
*/
84+
#[\ReturnTypeWillChange]
8485
public function next()
8586
{
8687
$this->_currentRow = fgetcsv($this->_fileHandler, null, $this->_delimiter, $this->_enclosure);
@@ -92,6 +93,7 @@ public function next()
9293
*
9394
* @return void Any returned value is ignored.
9495
*/
96+
#[\ReturnTypeWillChange]
9597
public function rewind()
9698
{
9799
// rewind resource, reset column names, read first row as current
@@ -111,11 +113,13 @@ public function rewind()
111113
* @throws OutOfBoundsException
112114
* @return void
113115
*/
116+
#[\ReturnTypeWillChange]
114117
public function seek($position)
115118
{
116119
if ($position != $this->_currentKey) {
117120
if (0 == $position) {
118-
return $this->rewind();
121+
$this->rewind();
122+
return;
119123
} elseif ($position > 0) {
120124
if ($position < $this->_currentKey) {
121125
$this->rewind();

app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1855,7 +1855,6 @@ protected function _saveProductWebsites(array $websiteData)
18551855
*
18561856
* @param string $resourceModelName
18571857
* @return Object
1858-
* @phpstan-ignore-next-line
18591858
*/
18601859
protected function getResourceModel($resourceModelName)
18611860
{
@@ -1867,7 +1866,6 @@ protected function getResourceModel($resourceModelName)
18671866
*
18681867
* @param string $helperName
18691868
* @return Mage_Core_Helper_Abstract
1870-
* @phpstan-ignore-next-line
18711869
*/
18721870
protected function getHelper($helperName)
18731871
{

app/code/core/Mage/ImportExport/Model/Resource/Import/Data.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ protected function _construct()
5151
*
5252
* @return IteratorIterator
5353
*/
54+
#[\ReturnTypeWillChange]
5455
public function getIterator()
5556
{
5657
$adapter = $this->_getWriteAdapter();

app/code/core/Mage/Sales/Model/Entity/Sale/Collection.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ public function getEntity()
190190
*
191191
* @return ArrayIterator
192192
*/
193+
#[\ReturnTypeWillChange]
193194
public function getIterator()
194195
{
195196
return new ArrayIterator($this->_items);

app/code/core/Mage/Sales/Model/Order/Pdf/Creditmemo.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ class Mage_Sales_Model_Order_Pdf_Creditmemo extends Mage_Sales_Model_Order_Pdf_A
4343
protected function _drawHeader(Zend_Pdf_Page $page)
4444
{
4545
$this->_setFontRegular($page, 10);
46-
$page->setFillColor(new Zend_Pdf_Color_RGB(0.93, 0.92, 0.92));
46+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.93, 0.92, 0.92));
4747
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
4848
$page->setLineWidth(0.5);
4949
$page->drawRectangle(25, $this->y, 570, $this->y - 30);
5050
$this->y -= 10;
51-
$page->setFillColor(new Zend_Pdf_Color_RGB(0, 0, 0));
51+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
5252

5353
//columns headers
5454
$lines[0][] = array(

app/code/core/Mage/Sales/Model/Order/Pdf/Invoice.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ protected function _drawHeader(Zend_Pdf_Page $page)
4343
{
4444
/* Add table head */
4545
$this->_setFontRegular($page, 10);
46-
$page->setFillColor(new Zend_Pdf_Color_RGB(0.93, 0.92, 0.92));
46+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.93, 0.92, 0.92));
4747
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
4848
$page->setLineWidth(0.5);
4949
$page->drawRectangle(25, $this->y, 570, $this->y -15);
5050
$this->y -= 10;
51-
$page->setFillColor(new Zend_Pdf_Color_RGB(0, 0, 0));
51+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
5252

5353
//columns headers
5454
$lines[0][] = array(

app/code/core/Mage/Sales/Model/Order/Pdf/Shipment.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ protected function _drawHeader(Zend_Pdf_Page $page)
4343
{
4444
/* Add table head */
4545
$this->_setFontRegular($page, 10);
46-
$page->setFillColor(new Zend_Pdf_Color_RGB(0.93, 0.92, 0.92));
46+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.93, 0.92, 0.92));
4747
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
4848
$page->setLineWidth(0.5);
4949
$page->drawRectangle(25, $this->y, 570, $this->y-15);
5050
$this->y -= 10;
51-
$page->setFillColor(new Zend_Pdf_Color_RGB(0, 0, 0));
51+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
5252

5353
//columns headers
5454
$lines[0][] = array(

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"magento-hackathon/magento-composer-installer": "^3.1 || ^2.1 || ^4.0"
1212
},
1313
"require-dev": {
14-
"macopedia/phpstan-magento1": "^1.0.2",
14+
"macopedia/phpstan-magento1": "^1.0.4",
1515
"phpstan/phpstan": "^1.4.6"
1616
},
1717
"authors": [

0 commit comments

Comments
 (0)