mirror of
https://github.com/ivuorinen/bbcodeparser.git
synced 2026-01-26 03:13:57 +00:00
Dropped support for PHP <8.1
This commit is contained in:
2
.github/workflows/php.yml
vendored
2
.github/workflows/php.yml
vendored
@@ -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
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
/vendor
|
vendor
|
||||||
composer.lock
|
composer.lock
|
||||||
|
*.cache
|
||||||
|
|||||||
22
.travis.yml
22
.travis.yml
@@ -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
|
|
||||||
86
README.md
86
README.md
@@ -5,104 +5,110 @@
|
|||||||
[](https://scrutinizer-ci.com/g/ivuorinen/bbcodeparser)
|
[](https://scrutinizer-ci.com/g/ivuorinen/bbcodeparser)
|
||||||
[](https://packagist.org/packages/ivuorinen/bbcodeparser)
|
[](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
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"/>
|
||||||
|
|||||||
26
phpunit.xml
26
phpunit.xml
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user