Dropped support for PHP <8.1

This commit is contained in:
2022-12-07 07:35:29 +02:00
parent 07c550b319
commit 0dc449e48d
7 changed files with 73 additions and 88 deletions

View File

@@ -14,7 +14,7 @@ jobs:
strategy: strategy:
matrix: matrix:
operating-system: ['ubuntu-latest'] operating-system: ['ubuntu-latest']
php-versions: ['7.4', '8.0', '8.1'] php-versions: ['8.1']
phpunit-versions: ['latest'] phpunit-versions: ['latest']
steps: steps:

3
.gitignore vendored
View File

@@ -1,2 +1,3 @@
/vendor vendor
composer.lock composer.lock
*.cache

View File

@@ -1,22 +0,0 @@
language: php
php:
- 7.3
- 7.4
- 8.0
- 8.1
- nightly
matrix:
allow_failures:
- php: nightly
fast_finish: true
cache:
directories:
- $HOME/.composer/cache/files
before_script:
- phpenv global "$TRAVIS_PHP_VERSION"
- composer config extra.platform.php $TRAVIS_PHP_VERSION
install:
- flags="--ansi --prefer-dist --no-interaction --optimize-autoloader --no-suggest --no-progress"
- travis_wait 30 composer install $flags
script:
- ./vendor/bin/phpunit -c phpunit.xml

View File

@@ -5,104 +5,110 @@
[![Quality Score](https://img.shields.io/scrutinizer/g/ivuorinen/bbcodeparser/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/ivuorinen/bbcodeparser) [![Quality Score](https://img.shields.io/scrutinizer/g/ivuorinen/bbcodeparser/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/ivuorinen/bbcodeparser)
[![Total Downloads](https://img.shields.io/packagist/dt/ivuorinen/bbcodeparser.svg?style=flat-square)](https://packagist.org/packages/ivuorinen/bbcodeparser) [![Total Downloads](https://img.shields.io/packagist/dt/ivuorinen/bbcodeparser.svg?style=flat-square)](https://packagist.org/packages/ivuorinen/bbcodeparser)
The ``ivuorinen\BBCodeParser`` package will help you with parsing BBCode. The `ivuorinen\BBCodeParser` package will help you with parsing BBCode.
This package is build on work by [Joseph Landberg](https://github.com/golonka). This package is build on work by [Joseph Landberg](https://github.com/golonka).
## Install ## Install
Via Composer Via Composer
``` bash ```
$ composer require ivuorinen/bbcodeparser composer require ivuorinen/bbcodeparser
``` ```
## Usage ## Usage
To parse some text it's as easy as this! To parse some text it's as easy as this!
``` php
$bbcode = new ivuorinen\BBCode\BBCodeParser; ```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();
echo $bbcode->parse('[b]Bold Text![/b]'); echo $bbcode->parse('[b]Bold Text![/b]');
// <strong>Bold Text!</strong> // <strong>Bold Text!</strong>
``` ```
Would like the parser to not use all bbcodes? Just do like this. Would like the parser to not use all bbcodes? Just do like this.
``` php
$bbcode = new ivuorinen\BBCode\BBCodeParser;
echo $bbcode->only('bold', 'italic') ```php
->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]'); $bbcode = new ivuorinen\BBCode\BBCodeParser();
// <strong>[u]Bold[/u] <em>Italic</em>!</strong>
echo $bbcode->except('bold') echo $bbcode
->parse('[b]Bold[/b] [i]Italic[/i]'); ->only('bold', 'italic')
// [b]Bold[/b] <em>Italic</em> ->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]'); // <strong>[u]Bold[/u] <em>Italic</em>!</strong>
echo $bbcode
->except('bold')
->parse('[b]Bold[/b] [i]Italic[/i]'); // [b]Bold[/b] <em>Italic</em>
``` ```
By default the parser is case sensitive. But if you would like the parser to accept tags like `` [B]Bold Text[/B] `` it's really easy. By default, the parser is case-sensitive. But if you would like the parser
``` php to accept tags like `[B]Bold Text[/B]` it's really easy.
$bbcode = new ivuorinen\BBCode\BBCodeParser;
```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();
// Case insensitive // Case insensitive
echo $bbcode->parse('[b]Bold[/b] [I]Italic![/I]', true); echo $bbcode->parse('[b]Bold[/b] [I]Italic![/I]', true); // <strong>Bold</strong> <em>Italic!</em>
// <strong>Bold</strong> <em>Italic!</em>
// Or like this // Or like this:
echo $bbcode->parseCaseInsensitive('[b]Bold[/b] [i]Italic[/i]'); // <strong>Bold</strong> <em>Italic!</em>
echo $bbcode->parseCaseInsensitive('[b]Bold[/b] [i]Italic[/i]');
// <strong>Bold</strong> <em>Italic!</em>
``` ```
You could also make it more explicit that the parser is case sensitive by using another helper function.
``` php
$bbcode = new ivuorinen\BBCode\BBCodeParser;
echo $bbcode->parseCaseSensitive('[b]Bold[/b] [I]Italic![/I]'); You could also make it more explicit that the parser is case-sensitive by using another helper function.
// <strong>Bold</strong> [I]Italic![/I]
```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();
echo $bbcode->parseCaseSensitive('[b]Bold[/b] [I]Italic![/I]'); // <strong>Bold</strong> [I]Italic![/I]
``` ```
If you would like to completely remove all BBCode it's just one function call away. If you would like to completely remove all BBCode it's just one function call away.
``` php
$bbcode = new ivuorinen\BBCode\BBCodeParser;
echo $bbcode->stripBBCodeTags('[b]Bold[/b] [i]Italic![/i]'); ```php
// Bold Italic! $bbcode = new ivuorinen\BBCode\BBCodeParser();
echo $bbcode->stripBBCodeTags('[b]Bold[/b] [i]Italic![/i]'); // Bold Italic!
``` ```
## Laravel integration ## Laravel integration
The integration into Laravel is really easy, and the method is the same for both Laravel 4 and Laravel 5. The integration into Laravel is really easy, and the method is the same for both Laravel 4 and Laravel 5.
This package supports Laravel Package Auto-Discovery, so it should be picked up automatically. This package supports Laravel Package Auto-Discovery, so it should be picked up automatically.
If you don't want auto-discovery, or because of old habits, just open your ``app.php`` config file. If you don't want auto-discovery, or because of old habits, just open your ``app.php`` config file.
In there you just add this to your providers array In there you just add this to your providers array
``` php
```php
'ivuorinen\BBCode\BBCodeParserServiceProvider' 'ivuorinen\BBCode\BBCodeParserServiceProvider'
``` ```
And this to your facades array And this to your facades array
``` php
```php
'BBCode' => 'ivuorinen\BBCode\Facades\BBCodeParser' 'BBCode' => 'ivuorinen\BBCode\Facades\BBCodeParser'
``` ```
The syntax is the same as if you would use it in vanilla PHP but with the ``BBCode::`` before the methods. The syntax is the same as if you would use it in vanilla PHP but with the ``BBCode::`` before the methods.
Here are some examples. Here are some examples.
``` php
```php
// Simple parsing // Simple parsing
echo BBCode::parse('[b]Bold Text![/b]'); echo BBCode::parse('[b]Bold Text![/b]');
// Limiting the parsers with the only method // Limiting the parsers with the only method
echo BBCode::only('bold', 'italic') echo BBCode::only('bold', 'italic')
->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]'); ->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]'); // <strong>[u]Bold[/u] <em>Italic</em>!</strong>
// <strong>[u]Bold[/u] <em>Italic</em>!</strong>
// Or the except method // Or the except method
echo BBCode::except('bold') echo BBCode::except('bold')
->parse('[b]Bold[/b] [i]Italic[/i]'); ->parse('[b]Bold[/b] [i]Italic[/i]'); // [b]Bold[/b] <em>Italic</em>
// [b]Bold[/b] <em>Italic</em>
``` ```
## Testing ## Testing
``` bash ``` bash
$ phpunit composer test
``` ```
## Contributing ## Contributing
@@ -113,7 +119,7 @@ Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
- [Ismo Vuorinen](https://github.com/ivuorinen) - [Ismo Vuorinen](https://github.com/ivuorinen)
- [Joseph Landberg](https://github.com/golonka) - [Joseph Landberg](https://github.com/golonka)
- [All Contributors](../../contributors) - [All Contributors](https://github.com/ivuorinen/bbcodeparser/contributors)
## License ## License

View File

@@ -6,20 +6,11 @@
"keywords": [ "keywords": [
"bbcode", "bbcode",
"parser", "parser",
"laravel", "laravel"
"psr-1",
"psr-2",
"psr-4"
], ],
"scripts": {
"test": "vendor/bin/phpunit",
"lint": "vendor/bin/phpcs",
"lint-fix": "vendor/bin/phpcbf"
},
"authors": [ "authors": [
{ {
"name": "Ismo Vuorinen", "name": "Ismo Vuorinen",
"email": "ismo@ivuorinen.net",
"homepage": "https://github.com/ivuorinen" "homepage": "https://github.com/ivuorinen"
}, },
{ {
@@ -33,7 +24,7 @@
"issues": "https://github.com/ivuorinen/bbcodeparser/issues" "issues": "https://github.com/ivuorinen/bbcodeparser/issues"
}, },
"require": { "require": {
"php": ">=7.4 || ^8.0 || ^8.1" "php": "^8.1"
}, },
"require-dev": { "require-dev": {
"dms/phpunit-arraysubset-asserts": "0.4.0", "dms/phpunit-arraysubset-asserts": "0.4.0",
@@ -73,5 +64,10 @@
"ivuorinen\\BBCode\\BBCodeParserServiceProvider" "ivuorinen\\BBCode\\BBCodeParserServiceProvider"
] ]
} }
},
"scripts": {
"lint": "vendor/bin/phpcs",
"lint-fix": "vendor/bin/phpcbf",
"test": "vendor/bin/phpunit"
} }
} }

View File

@@ -1,8 +1,8 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<ruleset name="Basic Project Coding Standards"> <ruleset name="Basic Project Coding Standards">
<rule ref="PSR2" /> <rule ref="PSR2"/>
<rule ref="Generic.CodeAnalysis.EmptyStatement" /> <rule ref="Generic.CodeAnalysis.EmptyStatement"/>
<rule ref="Generic.Classes.DuplicateClassName"/> <rule ref="Generic.Classes.DuplicateClassName"/>
<rule ref="Generic.CodeAnalysis.EmptyStatement"/> <rule ref="Generic.CodeAnalysis.EmptyStatement"/>
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/> <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>

View File

@@ -1,13 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<coverage processUncoveredFiles="true"> xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
<include> bootstrap="vendor/autoload.php"
<directory suffix=".php">./src</directory> colors="true"
</include> >
</coverage> <coverage processUncoveredFiles="true">
<testsuites> <include>
<testsuite name="Tests"> <directory suffix=".php">./src</directory>
<directory suffix="Test.php">./tests</directory> </include>
</testsuite> </coverage>
</testsuites> <testsuites>
<testsuite name="Tests">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
</phpunit> </phpunit>