Skip to content

Commit

Permalink
Merge pull request #837 from jtojnar/phpstan-3
Browse files Browse the repository at this point in the history
Raise PHPStan to level 6
  • Loading branch information
mblaney committed Aug 25, 2023
2 parents bb01ef4 + c799dd8 commit 65bc7d6
Show file tree
Hide file tree
Showing 114 changed files with 1,113 additions and 568 deletions.
1 change: 1 addition & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
'@PSR12' => true,
'@PHP71Migration' => true,
'@PHP71Migration:risky' => true,
'no_alias_functions' => true,
'void_return' => false,
'phpdoc_to_param_type' => true,
'@PHPUnit84Migration:risky' => true,
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\SimplePie');

// @trigger_error(sprintf('Using the "SimplePie" class is deprecated since SimplePie 1.7.0, use "SimplePie\SimplePie" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\SimplePie" instead */
class SimplePie extends NamespacedSimplePie
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Author.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Author');

// @trigger_error(sprintf('Using the "SimplePie_Author" class is deprecated since SimplePie 1.7.0, use "SimplePie\Author" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Author" instead */
class SimplePie_Author extends Author
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache');

// @trigger_error(sprintf('Using the "SimplePie_Cache" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache" instead */
class SimplePie_Cache extends Cache
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/Base.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ interface_exists('SimplePie\Cache\Base');

// @trigger_error(sprintf('Using the "SimplePie_Cache_Base" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Base" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Base" instead */
interface SimplePie_Cache_Base extends Base
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/DB.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache\DB');

// @trigger_error(sprintf('Using the "SimplePie_Cache_DB" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\DB" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\DB" instead */
abstract class SimplePie_Cache_DB extends DB
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/File.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache\File');

// @trigger_error(sprintf('Using the "SimplePie_Cache_File" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\File" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\File" instead */
class SimplePie_Cache_File extends File
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/Memcache.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache\Memcache');

// @trigger_error(sprintf('Using the "SimplePie_Cache_Memcache" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Memcache" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Memcache" instead */
class SimplePie_Cache_Memcache extends Memcache
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/Memcached.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache\Memcached');

// @trigger_error(sprintf('Using the "SimplePie_Cache_Memcached" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Memcached" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Memcached" instead */
class SimplePie_Cache_Memcached extends Memcached
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/MySQL.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache\MySQL');

// @trigger_error(sprintf('Using the "SimplePie_Cache_MySQL" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\MySQL" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\MySQL" instead */
class SimplePie_Cache_MySQL extends MySQL
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Cache/Redis.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Cache\Redis');

// @trigger_error(sprintf('Using the "SimplePie_Cache_Redis" class is deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Redis" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Cache\Redis" instead */
class SimplePie_Cache_Redis extends Redis
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Caption.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Caption');

// @trigger_error(sprintf('Using the "SimplePie_Caption" class is deprecated since SimplePie 1.7.0, use "SimplePie\Caption" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Caption" instead */
class SimplePie_Caption extends Caption
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Category');

// @trigger_error(sprintf('Using the "SimplePie_Category" class is deprecated since SimplePie 1.7.0, use "SimplePie\Category" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Category" instead */
class SimplePie_Category extends Category
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Content/Type/Sniffer.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Content\Type\Sniffer');

// @trigger_error(sprintf('Using the "SimplePie_Content_Type_Sniffer" class is deprecated since SimplePie 1.7.0, use "SimplePie\Content\Type\Sniffer" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Content\Type\Sniffer" instead */
class SimplePie_Content_Type_Sniffer extends Sniffer
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Copyright.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Copyright');

// @trigger_error(sprintf('Using the "SimplePie_Copyright" class is deprecated since SimplePie 1.7.0, use "SimplePie\Copyright" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Copyright" instead */
class SimplePie_Copyright extends Copyright
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Credit.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Credit');

// @trigger_error(sprintf('Using the "SimplePie_Credit" class is deprecated since SimplePie 1.7.0, use "SimplePie\Credit" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Credit" instead */
class SimplePie_Credit extends Credit
Expand Down
2 changes: 2 additions & 0 deletions library/SimplePie/Decode/HTML/Entities.php
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ public function consume_range(string $chars)
* Unconsume one byte
*
* @access private
* @return void
*/
public function unconsume()
{
Expand All @@ -116,6 +117,7 @@ public function unconsume()
* Decode an entity
*
* @access private
* @return void
*/
public function entity()
{
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Enclosure.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Enclosure');

// @trigger_error(sprintf('Using the "SimplePie_Enclosure" class is deprecated since SimplePie 1.7.0, use "SimplePie\Enclosure" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Enclosure" instead */
class SimplePie_Enclosure extends Enclosure
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Exception.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Exception');

// @trigger_error(sprintf('Using the "SimplePie_Exception" class is deprecated since SimplePie 1.7.0, use "SimplePie\Exception" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Exception" instead */
class SimplePie_Exception extends SimplePieException
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/File.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\File');

// @trigger_error(sprintf('Using the "SimplePie_File" class is deprecated since SimplePie 1.7.0, use "SimplePie\File" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\File" instead */
class SimplePie_File extends File
Expand Down
7 changes: 6 additions & 1 deletion library/SimplePie/HTTP/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,13 @@ class_exists('SimplePie\HTTP\Parser');

// @trigger_error(sprintf('Using the "SimplePie_HTTP_Parser" class is deprecated since SimplePie 1.7.0, use "SimplePie\HTTP\Parser" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\HTTP\Parser" instead */
/**
* @deprecated since SimplePie 1.7.0, use "SimplePie\HTTP\Parser" instead
* @template Psr7Compatible of bool
* @extends Parser<Psr7Compatible>
*/
class SimplePie_HTTP_Parser extends Parser
{
}
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/IRI.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\IRI');

// @trigger_error(sprintf('Using the "SimplePie_IRI" class is deprecated since SimplePie 1.7.0, use "SimplePie\IRI" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\IRI" instead */
class SimplePie_IRI extends IRI
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Item.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Item');

// @trigger_error(sprintf('Using the "SimplePie_Item" class is deprecated since SimplePie 1.7.0, use "SimplePie\Item" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Item" instead */
class SimplePie_Item extends Item
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Locator.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Locator');

// @trigger_error(sprintf('Using the "SimplePie_Locator" class is deprecated since SimplePie 1.7.0, use "SimplePie\Locator" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Locator" instead */
class SimplePie_Locator extends Locator
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Misc.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Misc');

// @trigger_error(sprintf('Using the "SimplePie_Misc" class is deprecated since SimplePie 1.7.0, use "SimplePie\Misc" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Misc" instead */
class SimplePie_Misc extends Misc
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Net/IPv6.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Net\IPv6');

// @trigger_error(sprintf('Using the "SimplePie_Net_IPv6" class is deprecated since SimplePie 1.7.0, use "SimplePie\Net\IPv6" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Net\IPv6" instead */
class SimplePie_Net_IPv6 extends IPv6
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Parse/Date.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Parse\Date');

// @trigger_error(sprintf('Using the "SimplePie_Parse_Date" class is deprecated since SimplePie 1.7.0, use "SimplePie\Parse\Date" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Parse\Date" instead */
class SimplePie_Parse_Date extends Date
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Parser');

// @trigger_error(sprintf('Using the "SimplePie_Parser" class is deprecated since SimplePie 1.7.0, use "SimplePie\Parser" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Parser" instead */
class SimplePie_Parser extends Parser
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Rating.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Rating');

// @trigger_error(sprintf('Using the "SimplePie_Rating" class is deprecated since SimplePie 1.7.0, use "SimplePie\Rating" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Rating" instead */
class SimplePie_Rating extends Rating
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Registry.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Registry');

// @trigger_error(sprintf('Using the "SimplePie_Registry" class is deprecated since SimplePie 1.7.0, use "SimplePie\Registry" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Registry" instead */
class SimplePie_Registry extends Registry
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Restriction.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Restriction');

// @trigger_error(sprintf('Using the "SimplePie_Restriction" class is deprecated since SimplePie 1.7.0, use "SimplePie\Restriction" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Restriction" instead */
class SimplePie_Restriction extends Restriction
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Sanitize.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Sanitize');

// @trigger_error(sprintf('Using the "SimplePie_Sanitize" class is deprecated since SimplePie 1.7.0, use "SimplePie\Sanitize" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Sanitize" instead */
class SimplePie_Sanitize extends Sanitize
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/Source.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Source');

// @trigger_error(sprintf('Using the "SimplePie_Source" class is deprecated since SimplePie 1.7.0, use "SimplePie\Source" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Source" instead */
class SimplePie_Source extends Source
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/XML/Declaration/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\XML\Declaration\Parser');

// @trigger_error(sprintf('Using the "SimplePie_XML_Declaration_Parser" class is deprecated since SimplePie 1.7.0, use "SimplePie\XML\Declaration\Parser" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\XML\Declaration\Parser" instead */
class SimplePie_XML_Declaration_Parser extends Parser
Expand Down
1 change: 1 addition & 0 deletions library/SimplePie/gzdecode.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class_exists('SimplePie\Gzdecode');

// @trigger_error(sprintf('Using the "SimplePie_gzdecode" class is deprecated since SimplePie 1.7.0, use "SimplePie\Gzdecode" instead.'), \E_USER_DEPRECATED);

/** @phpstan-ignore-next-line */
if (\false) {
/** @deprecated since SimplePie 1.7.0, use "SimplePie\Gzdecode" instead */
class SimplePie_gzdecode extends Gzdecode
Expand Down
37 changes: 36 additions & 1 deletion phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
parameters:
level: 2
level: 6

paths:
- library/
Expand All @@ -13,6 +13,41 @@ parameters:
# Testing legacy dynamic property usage.
- '(Access to an undefined property SimplePie.IRI::\$nonexistant_prop\.)'

-
message: '(^Strict comparison using === between string and false will always evaluate to false\.$)'
count: 1
path: src/HTTP/Parser.php
# Only occurs on PHP ≥ 8.0
reportUnmatched: false

-
message: '(^Strict comparison using === between string and false will always evaluate to false\.$)'
count: 1
path: src/IRI.php
# Only occurs on PHP ≥ 8.0
reportUnmatched: false

-
message: '(^Parameter #1 \$exception of method PHPUnit\\Framework\\TestCase::expectException\(\) expects class-string<Throwable>, string given\.$)'

count: 3
path: tests/Unit/Cache/Psr16Test.php
# Only occurs on PHP ≤ 7.4
reportUnmatched: false

-
message: '(^Parameter \$parser of method SimplePie\\Parser::(tag_open|cdata|tag_close)\(\) has invalid type XMLParser\.$)'

count: 3
path: src/Parser.php
# Only occurs on PHP ≤ 7.4
reportUnmatched: false

-
message: '(^Unable to resolve the template type T in call to method SimplePie\\Registry::get_class\(\)$)'
count: 2
path: tests/Unit/RegistryTest.php

# PHPStan stubs bug https://github.com/phpstan/phpstan/issues/8629
-
message: '(^Access to an undefined property XMLReader::\$\w+\.$)'
Expand Down
11 changes: 8 additions & 3 deletions src/Cache.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class Cache
*
* These receive 3 parameters to their constructor, as documented in
* {@see register()}
* @var array
* @var array<string, class-string<Base>>
*/
protected static $handlers = [
'mysql' => Cache\MySQL::class,
Expand Down Expand Up @@ -65,8 +65,12 @@ public static function get_handler(string $location, string $filename, $extensio
* Create a new SimplePie\Cache object
*
* @deprecated since SimplePie 1.3.1, use {@see get_handler()} instead
* @param string $location
* @param string $filename
* @param Base::TYPE_FEED|Base::TYPE_IMAGE $extension
* @return Base
*/
public function create($location, $filename, $extension)
public function create(string $location, string $filename, $extension)
{
trigger_error('Cache::create() has been replaced with Cache::get_handler() since SimplePie 1.3.1, use the registry system instead.', \E_USER_DEPRECATED);

Expand All @@ -78,6 +82,7 @@ public function create($location, $filename, $extension)
*
* @param string $type DSN type to register for
* @param class-string<Base> $class Name of handler class. Must implement Base
* @return void
*/
public static function register(string $type, $class)
{
Expand All @@ -88,7 +93,7 @@ public static function register(string $type, $class)
* Parse a URL into an array
*
* @param string $url
* @return array
* @return array<string, mixed>
*/
public static function parse_URL(string $url)
{
Expand Down

0 comments on commit 65bc7d6

Please sign in to comment.