jkque / laravel-string-replace
Helper for a messy str_replace
Requires
- php: ^7.1
- illuminate/support: ^5.5
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-12-24 07:59:32 UTC
README
This package will help you when str_replace gets a little bit messy.
Introduction
When you see something like this:
$remove_characters = ['<p>', '</p>', ''', ''', '<h2>', '</h2>', '<strong>', '</strong>', ' ', '?','@name', '&rsquot;', '"', '@firstname']; $replace_with = ['', '', "'", "'", '', '', '', '', '', '?', $user->name, "'", '"', $user->first_name]; $message = str_replace($remove_characters, $replace_with, $message);
A cleaner way:
use Jkque\StringReplace\StringReplace; $message = StringReplace::content($string) ->when($user, function ($string) use($user) { return $string->with(new UserStringReplace($user)); }) ->variables([ ''' => "'", '?' => '?' ]) ->replace();
use Jkque\StringReplace\StringReplace; use App\User; class UserStringReplace extends StringReplace { public function __construct(User $user) { $this->variables([ '@name' => $user->name, ]); } }
Usage
use Jkque\StringReplace\StringReplace; $string = 'We are awesome <p>in php</p> replacethis'; $string = StringReplace::content($string) ->variables([ 'replacethis' => 'coding', ]) ->replace(); // the ending method to be called
You can use conditional closures when
and unless
$string->when($somecondtion, function ($string) { // do something; })
By default html tags is being strip but you can turn it off by passing a false value in stripTags(false)
method.
Pipeline
To breakdown complex process into individual tasks you can create a class that extends Jkque\StringReplace\StringReplace
use Jkque\StringReplace\StringReplace; class RemoveBadWords extends StringReplace { public function __construct() { $this->variables([ 'badword' => '*', ]); } }
A helper command to create this class php artisan string-replace:pipe {name} {model? : With model}
. You can change the namespace of your model in the config file the default is 'App\'.
Installation
You can install the package via composer:
composer require jkque/laravel-string-replace
publish config files
php artisan vendor:publish --provider="Jkque\StringReplace\StringReplaceServiceProvider"
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email johnkevin.cadungog@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.