From 40efa2e3a51a4f8b190e6f2e15867b6b448bcf53 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 9 Jan 2019 20:55:42 +0100 Subject: [PATCH 1/7] Rename code folder to src --- {code => src}/Report.php | 0 {code => src}/ReportAdmin.php | 0 {code => src}/ReportWrapper.php | 0 {code => src}/SideReportView.php | 0 {code => src}/SideReportWrapper.php | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename {code => src}/Report.php (100%) rename {code => src}/ReportAdmin.php (100%) rename {code => src}/ReportWrapper.php (100%) rename {code => src}/SideReportView.php (100%) rename {code => src}/SideReportWrapper.php (100%) diff --git a/code/Report.php b/src/Report.php similarity index 100% rename from code/Report.php rename to src/Report.php diff --git a/code/ReportAdmin.php b/src/ReportAdmin.php similarity index 100% rename from code/ReportAdmin.php rename to src/ReportAdmin.php diff --git a/code/ReportWrapper.php b/src/ReportWrapper.php similarity index 100% rename from code/ReportWrapper.php rename to src/ReportWrapper.php diff --git a/code/SideReportView.php b/src/SideReportView.php similarity index 100% rename from code/SideReportView.php rename to src/SideReportView.php diff --git a/code/SideReportWrapper.php b/src/SideReportWrapper.php similarity index 100% rename from code/SideReportWrapper.php rename to src/SideReportWrapper.php From 467818a49d73ffde40e2e249c75902ff7eab9721 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 9 Jan 2019 20:56:19 +0100 Subject: [PATCH 2/7] Update phpcs ruleset to use PSR-12 as a base --- .travis.yml | 1 - composer.json | 7 ++++--- phpcs.xml.dist | 17 +++-------------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1ac2b9a3..1f43b596 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,6 @@ before_script: - if [[ $DB == PGSQL ]]; then composer require silverstripe/postgresql:3.x-dev --no-update; fi - if [[ $DB == SQLITE ]]; then composer require silverstripe/sqlite3:3.x-dev --no-update; fi - composer require silverstripe/recipe-core:5.x-dev silverstripe/admin:2.x-dev silverstripe/versioned:2.x-dev --no-update - - if [[ $PHPCS_TEST ]]; then composer global require squizlabs/php_codesniffer:^3 --prefer-dist --no-interaction --no-progress --no-suggest -o; fi - composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile script: diff --git a/composer.json b/composer.json index b6a2bbb4..b07fa65c 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,8 @@ "silverstripe/vendor-plugin": "^1" }, "require-dev": { - "phpunit/phpunit": "^7" + "phpunit/phpunit": "^7", + "squizlabs/php_codesniffer": "3.x-dev" }, "extra": { "branch-alias": { @@ -43,8 +44,8 @@ } }, "scripts": { - "lint": "phpcs code/ tests/", - "lint-clean": "phpcbf code/ tests/" + "lint": "vendor/bin/phpcs src/ tests/", + "lint-clean": "vendor/bin/phpcbf src/ tests/" }, "minimum-stability": "dev", "prefer-stable": true diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 9276cd5a..50768205 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -2,21 +2,10 @@ CodeSniffer ruleset for SilverStripe coding conventions. - - + + - - - - - - - - - - - - + From 5cbe29ae682844bd1220d53892e209eb2ff0a5f5 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 9 Jan 2019 20:59:28 +0100 Subject: [PATCH 3/7] Fix phpcs line length violations and multiple properties per line --- src/Report.php | 14 +++++++++++--- src/ReportAdmin.php | 16 +++++++++++----- src/ReportWrapper.php | 2 +- src/SideReportView.php | 4 ++-- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/Report.php b/src/Report.php index dad52df2..53e5b3f0 100644 --- a/src/Report.php +++ b/src/Report.php @@ -59,7 +59,8 @@ use SilverStripe\View\ViewableData; * Right now, all subclasses of SS_Report will be shown in the ReportAdmin. In SS3 there is only * one place where reports can go, so this class is greatly simplifed from its version in SS2. * - * @method SS_List|DataList sourceRecords($params = [], $sort = null, $limit = null) List of records to show for this report + * @method SS_List|DataList sourceRecords($params = [], $sort = null, $limit = null) + * List of records to show for this report */ class Report extends ViewableData { @@ -149,7 +150,11 @@ class Report extends ViewableData if ($this->hasMethod('sourceRecords')) { return $this->sourceRecords($params, null, null)->dataQuery(); } else { - user_error("Please override sourceQuery()/sourceRecords() and columns() or, if necessary, override getReportField()", E_USER_ERROR); + user_error( + "Please override sourceQuery()/sourceRecords() and columns() or, if necessary, " + . "override getReportField()", + E_USER_ERROR + ); } } @@ -313,7 +318,10 @@ class Report extends ViewableData } // Add a search button - $formAction = FormAction::create('updatereport', _t('SilverStripe\\Forms\\GridField\\GridField.Filter', 'Filter')); + $formAction = FormAction::create( + 'updatereport', + _t('SilverStripe\\Forms\\GridField\\GridField.Filter', 'Filter') + ); $formAction->addExtraClass('btn-primary mb-4'); $fields->push($formAction); diff --git a/src/ReportAdmin.php b/src/ReportAdmin.php index 8173681e..09149537 100644 --- a/src/ReportAdmin.php +++ b/src/ReportAdmin.php @@ -174,10 +174,13 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider if ($this->reportObject) { //build breadcrumb trail to the current report - $items->push(new ArrayData(array( + $items->push(ArrayData::create([ 'Title' => $this->reportObject->title(), - 'Link' => Controller::join_links($this->Link(), '?' . http_build_query(array('q' => $this->request->requestVar('q')))) - ))); + 'Link' => Controller::join_links( + $this->Link(), + '?' . http_build_query(['q' => $this->request->requestVar('q')]) + ) + ])); } return $items; @@ -226,7 +229,8 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider ); $gridField = new GridField('Reports', false, $this->Reports(), $gridFieldConfig); /** @var GridFieldDataColumns $columns */ - $columns = $gridField->getConfig()->getComponentByType('SilverStripe\\Forms\\GridField\\GridFieldDataColumns'); + $columns = $gridField->getConfig() + ->getComponentByType('SilverStripe\\Forms\\GridField\\GridFieldDataColumns'); $columns->setDisplayFields(array( 'title' => _t('SilverStripe\\Reports\\ReportAdmin.ReportTitle', 'Title'), )); @@ -240,7 +244,9 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider $actions = new FieldList(); $form = new Form($this, "EditForm", $fields, $actions); - $form->addExtraClass('panel panel--padded panel--scrollable cms-edit-form cms-panel-padded' . $this->BaseCSSClasses()); + $form->addExtraClass( + 'panel panel--padded panel--scrollable cms-edit-form cms-panel-padded' . $this->BaseCSSClasses() + ); $form->loadDataFrom($this->request->getVars()); $this->extend('updateEditForm', $form); diff --git a/src/ReportWrapper.php b/src/ReportWrapper.php index 7ba44e76..cfcae129 100644 --- a/src/ReportWrapper.php +++ b/src/ReportWrapper.php @@ -21,7 +21,7 @@ abstract class ReportWrapper extends Report public function __construct($baseReport) { - $this->baseReport = is_string($baseReport) ? new $baseReport : $baseReport; + $this->baseReport = is_string($baseReport) ? new $baseReport() : $baseReport; $this->dataClass = $this->baseReport->dataClass(); parent::__construct(); } diff --git a/src/SideReportView.php b/src/SideReportView.php index 171ef960..4e15fb55 100644 --- a/src/SideReportView.php +++ b/src/SideReportView.php @@ -11,8 +11,8 @@ use SilverStripe\View\ViewableData; */ class SideReportView extends ViewableData { - - protected $controller, $report; + protected $controller; + protected $report; protected $parameters; public function __construct($controller, $report) From ccea32b115ee949341d8f70f95281bbcd7e1ebcc Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 9 Jan 2019 21:12:20 +0100 Subject: [PATCH 4/7] Update autoloader folder name to src --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b07fa65c..04d575df 100644 --- a/composer.json +++ b/composer.json @@ -39,7 +39,7 @@ }, "autoload": { "psr-4": { - "SilverStripe\\Reports\\": "code/", + "SilverStripe\\Reports\\": "src/", "SilverStripe\\Reports\\Tests\\": "tests/" } }, From e40cf402441bd54ef1485e0b1aec0f63632c9881 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Thu, 10 Jan 2019 12:22:11 +0100 Subject: [PATCH 5/7] Use stable codesniffer --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 04d575df..c7b8bc81 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ }, "require-dev": { "phpunit/phpunit": "^7", - "squizlabs/php_codesniffer": "3.x-dev" + "squizlabs/php_codesniffer": "^3" }, "extra": { "branch-alias": { From 65d0760fa3e4010009be26aa16e44ff5cb596797 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Thu, 10 Jan 2019 12:23:56 +0100 Subject: [PATCH 6/7] Update Scrutinizer configuration to use new build engine --- .scrutinizer.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index 61b0c9f6..051ef9ad 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -1,9 +1,15 @@ inherit: true +build: + nodes: + analysis: + tests: + override: [php-scrutinizer-run] + checks: php: code_rating: true duplication: true filter: - paths: [code/*, tests/*] + paths: [src/*, tests/*] From 46c3e2024148f2498f11ef08a9c25d665b6c6bd2 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Fri, 22 Mar 2019 13:58:43 +1300 Subject: [PATCH 7/7] Use Injector to instantiate new base report instances --- src/ReportWrapper.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ReportWrapper.php b/src/ReportWrapper.php index cfcae129..3a1fe76c 100644 --- a/src/ReportWrapper.php +++ b/src/ReportWrapper.php @@ -2,6 +2,8 @@ namespace SilverStripe\Reports; +use SilverStripe\Core\Injector\Injector; + /** * SS_ReportWrapper is a base class for creating report wappers. * @@ -21,7 +23,7 @@ abstract class ReportWrapper extends Report public function __construct($baseReport) { - $this->baseReport = is_string($baseReport) ? new $baseReport() : $baseReport; + $this->baseReport = is_string($baseReport) ? Injector::inst()->create($baseReport) : $baseReport; $this->dataClass = $this->baseReport->dataClass(); parent::__construct(); }