Skip to content

Commit

Permalink
Merge pull request #31 from OskarStark/feature/php-cs-fixer
Browse files Browse the repository at this point in the history
Enhancement: Add PHP-CS-Fixer
  • Loading branch information
slunak authored Aug 20, 2024
2 parents c5c44cf + 952d920 commit b5037ce
Show file tree
Hide file tree
Showing 90 changed files with 922 additions and 1,237 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,17 @@ jobs:
extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}"
tools: "composer:v2"

- name: "Composer install"
uses: "ramsey/composer-install@v1"
with:
dependency-versions: "${{ matrix.dependencies }}"
composer-options: "--prefer-dist"

- name: "Validate composer.json"
run: "composer validate"

- name: "Normalize composer.json"
run: "composer normalize"

tests:
name: "PHP ${{ matrix.php-version }} + ${{ matrix.dependencies }}"
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
vendor/
composer.lock
.php_cs.cache
.php-cs-fixer.cache
.php-cs-fixer.dist.php
.idea/
.build
.php-version
110 changes: 110 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?php

declare(strict_types=1);

/**
* This file is part of the Pushover package.
*
* (c) Serhiy Lunak <https://github.com/slunak>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

use Ergebnis\PhpCsFixer\Config\Factory;
use Ergebnis\PhpCsFixer\Config\Rules;
use Ergebnis\PhpCsFixer\Config\RuleSet\Php74;

$header = <<<'HEADER'
This file is part of the Pushover package.
(c) Serhiy Lunak <https://github.com/slunak>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
HEADER;

$ruleSet = Php74::create()->withHeader($header)->withRules(Rules::fromArray([
'blank_line_before_statement' => [
'statements' => [
'break',
'continue',
'declare',
'default',
'do',
'exit',
'for',
'foreach',
'goto',
'if',
'include',
'include_once',
'require',
'require_once',
'return',
'switch',
'throw',
'try',
'while',
],
],
'concat_space' => [
'spacing' => 'none',
],
'date_time_immutable' => false,
'error_suppression' => false,
'final_class' => false,
'mb_str_functions' => false,
'native_function_invocation' => [
'exclude' => [
'sprintf',
],
'include' => [
'@compiler_optimized',
],
'scope' => 'all',
'strict' => false,
],
'php_unit_internal_class' => false,
'php_unit_test_annotation' => [
'style' => 'prefix',
],
'php_unit_test_class_requires_covers' => false,
'return_to_yield_from' => false,
'phpdoc_array_type' => false,
'phpdoc_list_type' => false,
'attribute_empty_parentheses' => false,
'final_public_method_for_abstract_class' => false,
'class_attributes_separation' => [
'elements' => [
'const' => 'only_if_meta',
'property' => 'only_if_meta',
'trait_import' => 'none',
'case' => 'none',
],
],

// temp disabled to keep the diff small in the first run
'declare_strict_types' => false,
'void_return' => false,
'ordered_imports' => false,
'php_unit_test_case_static_method_calls' => false,
'strict_comparison' => false,
'yoda_style' => false,
'phpdoc_to_property_type' => false,
'phpdoc_summary' => false,
'nullable_type_declaration_for_default_null_value' => false,
]));

$config = Factory::fromRuleSet($ruleSet);

$config->getFinder()
->append([
__DIR__.'/.php-cs-fixer.dist.php',
])
->in('src')
->in('tests');

$config->setCacheFile(__DIR__.'/.build/php-cs-fixer/.php-cs-fixer.cache');

return $config;
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# vim: set tabstop=8 softtabstop=8 noexpandtab:
.PHONY: help
help: ## Displays this list of targets with descriptions
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}'

.PHONY: cs
cs: vendor ## Normalizes composer.json with ergebnis/composer-normalize and fixes code style issues with friendsofphp/php-cs-fixer
symfony composer normalize
mkdir -p .build/php-cs-fixer
symfony php vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php --diff --verbose
35 changes: 24 additions & 11 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,41 @@
{
"name": "serhiy/pushover",
"description": "Light, simple and fast, yet comprehensive wrapper for the Pushover API.",
"type": "library",
"keywords": ["pushover", "pushover.net", "wrapper", "client"],
"homepage": "https://github.com/slunak/pushover-php",
"require": {
"php": ">=7.4",
"ext-curl": "*",
"ext-json": "*"
},
"license": "MIT",
"type": "library",
"keywords": [
"pushover",
"pushover.net",
"wrapper",
"client"
],
"authors": [
{
"name": "Serhiy Lunak",
"email": "serhiy.lunak@gmail.com",
"role": "Developer"
"role": "Developer"
}
],
"homepage": "https://github.com/slunak/pushover-php",
"require": {
"php": ">=7.4",
"ext-curl": "*",
"ext-json": "*"
},
"require-dev": {
"ergebnis/php-cs-fixer-config": "^6.34",
"friendsofphp/php-cs-fixer": "^3.61",
"phpunit/phpunit": "*",
"ergebnis/composer-normalize": "^2.43"
},
"autoload": {
"psr-4": {
"Serhiy\\Pushover\\": "src/"
}
},
"require-dev": {
"phpunit/phpunit": "*"
"config": {
"allow-plugins": {
"ergebnis/composer-normalize": true
}
}
}
40 changes: 8 additions & 32 deletions src/Api/Glances/Glance.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

/*
/**
* This file is part of the Pushover package.
*
* (c) Serhiy Lunak <https://github.com/slunak>
Expand Down Expand Up @@ -32,17 +32,17 @@
class Glance
{
/**
* @var Application Pushover application.
* @var Application pushover application
*/
private $application;

/**
* @var Recipient Pushover user.
* @var Recipient pushover user
*/
private $recipient;

/**
* @var GlanceDataFields Glance Data Fields.
* @var GlanceDataFields glance Data Fields
*/
private $glanceDataFields;

Expand All @@ -52,73 +52,49 @@ public function __construct(Application $application, GlanceDataFields $glanceDa
$this->glanceDataFields = $glanceDataFields;
}

/**
* @return Application
*/
public function getApplication(): Application
{
return $this->application;
}

/**
* @param Application $application
*/
public function setApplication(Application $application): void
{
$this->application = $application;
}

/**
* @return Recipient
*/
public function getRecipient(): Recipient
{
return $this->recipient;
}

/**
* @param Recipient $recipient
*/
public function setRecipient(Recipient $recipient): void
{
$this->recipient = $recipient;
}

/**
* @return GlanceDataFields
*/
public function getGlanceDataFields(): GlanceDataFields
{
return $this->glanceDataFields;
}

/**
* @param GlanceDataFields $glanceDataFields
*/
public function setGlanceDataFields(GlanceDataFields $glanceDataFields): void
{
$this->glanceDataFields = $glanceDataFields;
}

/**
* @return bool
*/
public function hasAtLeastOneField(): bool
{
if (null === $this->getGlanceDataFields()->getTitle() &&
null === $this->getGlanceDataFields()->getSubtext() &&
null === $this->getGlanceDataFields()->getCount() &&
null === $this->getGlanceDataFields()->getPercent()
if (null === $this->getGlanceDataFields()->getTitle()
&& null === $this->getGlanceDataFields()->getSubtext()
&& null === $this->getGlanceDataFields()->getCount()
&& null === $this->getGlanceDataFields()->getPercent()
) {
return false;
}

return true;
}

/**
* @return bool
*/
public function hasRecipient(): bool
{
if (null === $this->recipient) {
Expand Down
Loading

0 comments on commit b5037ce

Please sign in to comment.