Files
FreshRSS/phpcs.xml
berumuron daaa391e33 tec: Update the lib_opml (#4403)
* fix: Fix undefined GLOB_BRACE on Alpine

The manual states that:

> Note: The GLOB_BRACE flag is not available on some non GNU systems,
> like Solaris or Alpine Linux.

This generated an error on Alpine.

Reference: https://www.php.net/manual/function.glob.php

* fix: List details of feeds for OPML exportation

The details are necessary to export the XPath information, the CSS full
content path and read actions filters.

* Update LibOpml to 0.4.0

* Refactor OPML importation to be more robust

First, it fixes two regressions introduced by the update of lib_opml:

- title attribute is used when text attribute is missing;
- the OPML category attribute is used as a fallback for feeds categories.

In a related way, if also fixes a problem when a feed had both a parent
category outline and a category attribute. Before, it only considered the
attribute as its category, but now it considers the parent outline.

Then, it counts category limit correctly by not increasing
`$nb_categories` if the category already exists.

* Exclude lib_opml from the CodeSniffer

* Fix variable names when logging some errors

* Fix catch of LibOpml Exception

* Make sure to declare the category

* Exclude lib_opml from PHPStan analyze

* Disable markdownlint for lib_opml

* Fix typos

* Use auto-loading and allow updates via Composer

* Fix broken links to lib_opml

* Bring back the ability to import the OPML frss:opmlUrl attribute

* Refactor the logs of OPML errors

* Update lib_opml to the version 0.5.0

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-18 10:12:21 +01:00

122 lines
5.3 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="FreshRSS Ruleset">
<description>Created with the PHP Coding Standard Generator. https://edorian.github.com/php-coding-standard-generator/</description>
<arg name="extensions" value="php,phtml,css,js"/>
<arg name="tab-width" value="4"/>
<exclude-pattern>./.git/</exclude-pattern>
<exclude-pattern>./lib/SimplePie/</exclude-pattern>
<exclude-pattern>./lib/marienfressinaud/</exclude-pattern>
<exclude-pattern>./lib/phpgt/</exclude-pattern>
<exclude-pattern>./lib/phpmailer/</exclude-pattern>
<exclude-pattern>./lib/http-conditional.php</exclude-pattern>
<exclude-pattern>./node_modules/</exclude-pattern>
<exclude-pattern>./data/config.php</exclude-pattern>
<exclude-pattern>./data/users/*/config.php</exclude-pattern>
<exclude-pattern>./extensions/</exclude-pattern>
<exclude-pattern>./p/scripts/vendor/</exclude-pattern>
<exclude-pattern>./vendor/</exclude-pattern>
<exclude-pattern>*.min.js$</exclude-pattern>
<!-- Duplicate class names are not allowed -->
<rule ref="Generic.Classes.DuplicateClassName"/>
<!-- Statements must not be empty -->
<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
<!-- Unconditional if-statements are not allowed -->
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
<!-- Do not use final statements inside final classes -->
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
<!-- Do not override methods to call their parent -->
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
<!-- Maximum line length -->
<rule ref="Generic.Files.LineLength">
<!-- For language strings maximum line lengths make little sense. -->
<exclude-pattern>./app/i18n/</exclude-pattern>
<!-- Dont enforce line length on the HTML; the point is to improve legibility, not reduce it -->
<exclude-pattern>*.phtml$</exclude-pattern>
<properties>
<property name="lineLimit" value="165"/>
<property name="absoluteLineLimit" value="190"/>
</properties>
</rule>
<!-- When calling a function: -->
<!-- Do not add a space before the opening parenthesis -->
<!-- Do not add a space after the opening parenthesis -->
<!-- Do not add a space before the closing parenthesis -->
<!-- Do not add a space before a comma -->
<!-- Add a space after a comma -->
<rule ref="Generic.Functions.FunctionCallArgumentSpacing"/>
<rule ref="Generic.PHP.DisallowShortOpenTag">
<exclude name="Generic.PHP.DisallowShortOpenTag.EchoFound"/>
</rule>
<rule ref="Generic.PHP.DeprecatedFunctions" />
<!-- Use UPPERCARE for constants -->
<rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
<!-- Use lowercase for 'true', 'false' and 'null' -->
<rule ref="Generic.PHP.LowerCaseConstant"/>
<!-- Use a single string instead of concatenating -->
<rule ref="Generic.Strings.UnnecessaryStringConcat">
<properties>
<!-- Allow string concatenating across multiple lines -->
<property name="allowMultiline" value="true"/>
</properties>
</rule>
<!-- Use tabs for indentation -->
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
<!-- Parameters with default values must appear last in functions -->
<rule ref="PEAR.Functions.ValidDefaultValue"/>
<!-- Use 'elseif' instead of 'else if' -->
<rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
<!-- Do not add spaces after opening or before closing bracket -->
<rule ref="PSR2.ControlStructures.ControlStructureSpacing"/>
<!-- Add a new line at the end of a file -->
<rule ref="PSR2.Files.EndFileNewline"/>
<!-- Use Unix newlines -->
<rule ref="Generic.Files.LineEndings">
<properties>
<property name="eolChar" value="\n" />
</properties>
</rule>
<!-- Add space after closing parenthesis -->
<!-- Add body into new line -->
<!-- Close body in new line -->
<rule ref="Squiz.ControlStructures.ControlSignature">
<!-- No space after keyword (before opening parenthesis) -->
<exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
</rule>
<!-- When declaring a function: -->
<!-- Do not add a space before a comma -->
<!-- Add a space after a comma -->
<!-- Add a space before and after an equal sign -->
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
<properties>
<property name="equalsSpacing" value="1"/>
</properties>
</rule>
<!-- Do not add spaces when casting -->
<rule ref="Squiz.WhiteSpace.CastSpacing"/>
<!-- Operators must have a space around them -->
<rule ref="Squiz.WhiteSpace.OperatorSpacing">
<properties>
<property name="ignoreNewlines" value="true" />
</properties>
</rule>
<!-- Do not add a whitespace before a semicolon -->
<rule ref="Squiz.WhiteSpace.SemicolonSpacing"/>
<!-- Do not add whitespace at start or end of a file or end of a line -->
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
<!-- Expected space after closing parenthesis -->
<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis">
<exclude-pattern>.phtml$</exclude-pattern>
</rule>
<!-- Opening brace on same line as function declaration -->
<rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" />
<!-- Newline required after opening brace -->
<rule ref="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace">
<exclude-pattern>.phtml$</exclude-pattern>
<exclude-pattern>.js$</exclude-pattern>
</rule>
<!-- No PHP code was found in this file -->
<rule ref="Internal.NoCodeFound">
<exclude-pattern>.phtml$</exclude-pattern>
</rule>
</ruleset>