illuminated / helper-functions
Laravel-specific and pure PHP Helper Functions.
Installs: 382 165
Dependents: 9
Suggesters: 0
Security: 0
Stars: 107
Watchers: 4
Forks: 17
Open Issues: 0
Requires
- php: ^8.1
- ext-dom: *
- ext-simplexml: *
- illuminate/support: ^10.0
- nesbot/carbon: ^2.67
- spatie/array-to-xml: ^3.0
- symfony/filesystem: ^6.2
- symfony/finder: ^6.2
- symfony/process: ^6.2
- symfony/var-dumper: ^6.2
Requires (Dev)
- illuminated/testing-tools: ^10.0
- mockery/mockery: ^1.5.1
- phpunit/phpunit: ^10.5
- dev-master
- 10.x-dev
- 10.0.0
- 9.x-dev
- 9.1.0
- 9.0.1
- 9.0.0
- 8.x-dev
- 8.1.0
- 8.0.0
- 7.x-dev
- 7.1.0
- 7.0.0
- 6.x-dev
- 6.2.0
- 6.1.0
- 6.0.0
- 5.8.x-dev
- 5.8.0
- 5.7.x-dev
- 5.7.4
- 5.7.3
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.x-dev
- 5.6.5
- 5.6.4
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.x-dev
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.x-dev
- 5.4.4
- 5.4.3
- 5.4.2
- 5.4.1
- 5.4.0
- 5.3.x-dev
- 5.3.4
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.x-dev
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.x-dev
- 5.1.4
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.1.32
- 0.1.31
- 0.1.30
- 0.1.29
- 0.1.28
- 0.1.27
- 0.1.26
- 0.1.25
- 0.1.24
- 0.1.23
- 0.1.22
- 0.1.21
- 0.1.20
- 0.1.19
- 0.1.18
- 0.1.17
- 0.1.16
- 0.1.15
- 0.1.14
- 0.1.13
- 0.1.12
- 0.1.11
- 0.1.10
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
This package is auto-updated.
Last update: 2024-11-06 18:20:54 UTC
README
Laravel Helper Functions
Laravel-specific and pure PHP Helper Functions.
Usage
-
Install the package via Composer:
composer require illuminated/helper-functions
-
Use any of the provided helper functions:
if (is_windows_os()) { call_in_background('switch-to-mac'); }
Available functions
Feel free to contribute.
Array
array_except_value()
Remove the given values from the array:
array_except_value(['foo', 'bar', 'baz'], 'baz'); // ["foo", "bar"]
array_except_value(['foo', 'bar', 'baz'], ['bar', 'baz']); // ["foo"]
multiarray_set()
Set the value for each item of the multidimensional array using "dot" notation:
$array = [ ['name' => 'Mercedes-Benz', 'details' => ['type' => 'SUV']], ['name' => 'BMW', 'details' => ['type' => 'SUV']], ['name' => 'Porsche', 'details' => ['type' => 'SUV']], ]; multiarray_set($array, 'details.country', 'Germany'); // [ // ["name" => "Mercedes-Benz", "details" => ["type" => "SUV", "country" => "Germany"]], // ["name" => "BMW", "details" => ["type" => "SUV", "country" => "Germany"]], // ["name" => "Porsche", "details" => ["type" => "SUV", "country" => "Germany"]], // ]
multiarray_sort_by()
Sort the multidimensional array by several fields:
$array = [ ['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000], ['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000], ['name' => 'BMW', 'model' => 'X6', 'price' => 77000], ['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000], ]; $sorted = multiarray_sort_by($array, 'name', 'model'); // [ // ["name" => "BMW", "model" => "X6", "price" => 77000], // ["name" => "Mercedes-Benz", "model" => "GLE Coupe", "price" => 110000], // ["name" => "Mercedes-Benz", "model" => "GLS", "price" => 120000], // ["name" => "Porsche", "model" => "Cayenne", "price" => 117000], // ]
Also, you can change the sort order:
$array = [ ['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000], ['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000], ['name' => 'BMW', 'model' => 'X6', 'price' => 77000], ['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000], ]; $sorted = multiarray_sort_by($array, 'name', SORT_ASC, 'model', SORT_DESC); // [ // ["name" => "BMW", "model" => "X6", "price" => 77000], // ["name" => "Mercedes-Benz", "model" => "GLS", "price" => 120000], // ["name" => "Mercedes-Benz", "model" => "GLE Coupe", "price" => 110000], // ["name" => "Porsche", "model" => "Cayenne", "price" => 117000], // ]
Artisan
call_in_background()
Call the given artisan console command in background.
Code execution continues immediately, without waiting for results.
call_in_background('report'); // "php artisan report" would be called in background
Optional before
and after
sub-commands could be used:
call_in_background('report:monthly subscriptions', 'sleep 0.3'); // "sleep 0.3 && php artisan report:monthly subscriptions" would be called in background
Database
db_is_sqlite()
Check whether the default database connection driver is sqlite
or not:
db_is_sqlite(); // false
db_is_mysql()
Check whether the default database connection driver is mysql
or not:
db_is_mysql(); // true
db_mysql_now()
Get the current MySQL datetime:
db_mysql_now(); // "2020-05-25 20:09:33"
db_mysql_variable()
Get value of the specified MySQL variable:
db_mysql_variable('hostname'); // "localhost"
Date
to_default_timezone()
Convert the given datetime to the default timezone (see app.timezone
config):
to_default_timezone('2017-02-28T14:05:01Z'); // "2017-02-28 16:05:01", assuming that `app.timezone` is "Europe/Kiev"
Debug
backtrace_as_string()
Get backtrace without arguments, as a string:
$backtrace = backtrace_as_string(); #0 backtrace_as_string() called at [/htdocs/example/routes/web.php:15] #1 Illuminate\Routing\Router->{closure}() called at [/htdocs/example/vendor/laravel/framework/src/Illuminate/Routing/Route.php:189] #2 Illuminate\Foundation\Http\Kernel->handle() called at [/htdocs/example/public/index.php:53]
minimized_backtrace_as_string()
Get minimized backtrace, as a string:
$backtrace = minimized_backtrace_as_string(); #0 /htdocs/example/routes/web.php:15 #1 /htdocs/example/vendor/laravel/framework/src/Illuminate/Routing/Route.php:189 #2 /htdocs/example/public/index.php:53
is_email()
Check whether the given string is an email address or not:
is_email('john.doe@example.com'); // true
to_rfc2822_email()
Convert addresses data to RFC 2822 string, suitable for PHP mail() function:
to_rfc2822_email([ ['address' => 'john.doe@example.com', 'name' => 'John Doe'], ['address' => 'jane.smith@example.com'], ]); // "John Doe <john.doe@example.com>, jane.smith@example.com"
Also, it supports simplified syntax for a single address:
to_rfc2822_email(['address' => 'john.doe@example.com', 'name' => 'John Doe']); // "John Doe <john.doe@example.com>"
to_swiftmailer_emails()
Convert addresses data to SwiftMailer-suitable format:
to_swiftmailer_emails([ ['address' => 'john.doe@example.com', 'name' => 'John Doe'], ['address' => 'jane.smith@example.com'], ]); // ["john.doe@example.com" => "John Doe", "jane.smith@example.com"]
Also, it supports simplified syntax for a single address:
to_swiftmailer_emails(['address' => 'john.doe@example.com', 'name' => 'John Doe']); // ["john.doe@example.com" => "John Doe"]
to_symfony_emails()
Convert addresses data to Symfony-suitable format:
to_symfony_emails([ ['address' => 'john.doe@example.com', 'name' => 'John Doe'], ['address' => 'jane.smith@example.com'], ]); // ["John Doe <john.doe@example.com>", "jane.smith@example.com"]
Also, it supports simplified syntax for a single address:
to_symfony_emails(['address' => 'john.doe@example.com', 'name' => 'John Doe']); // ["John Doe <john.doe@example.com>"]
Filesystem
relative_path()
Get a relative path for the given folders:
relative_path('/var/www/htdocs', '/var/www/htdocs/example'); // "../"
You can pass the relative path as a parameter too:
relative_path('/var/www/htdocs/example/public/../../', '/var/'); // "www/htdocs/"
Format
get_dump()
Get a nicely formatted string representation of the variable, using the Symfony VarDumper Component:
$array = [ 'a simple string' => 'Hello!', 'a float' => 1.0, 'an integer' => 1, 'a boolean' => true, 'an empty array' => [], ]; $dump = get_dump($array); // array:5 [ // "a simple string" => "Hello!" // "a float" => 1.0 // "an integer" => 1 // "a boolean" => true // "an empty array" => [] // ]
format_bytes()
Format bytes into kilobytes, megabytes, gigabytes or terabytes:
format_bytes(3333333); // "3.18 MB"
format_xml()
Format the given XML string using new lines and indents:
format_xml('<?xml version="1.0"?><root><task priority="low"><to>John</to><from>Jane</from><title>Go to the shop</title></task><task priority="medium"><to>John</to><from>Paul</from><title>Finish the report</title></task><task priority="high"><to>Jane</to><from>Jeff</from><title>Clean the house</title></task></root>'); // <?xml version="1.0"?> // <root> // <task priority="low"> // <to>John</to> // <from>Jane</from> // <title>Go to the shop</title> // </task> // <task priority="medium"> // <to>John</to> // <from>Paul</from> // <title>Finish the report</title> // </task> // <task priority="high"> // <to>Jane</to> // <from>Jeff</from> // <title>Clean the house</title> // </task> // </root>
Json
is_json()
Check whether the given value is a valid JSON-encoded string or not:
is_json('{"foo":1,"bar":2,"baz":3}'); // true
It returns decoded JSON if you pass true
as a second argument:
is_json('{"foo":1,"bar":2,"baz":3}', true); // ["foo" => 1, "bar" => 2, "baz" => 3]
System
is_windows_os()
Check whether the operating system is Windows or not:
is_windows_os(); // false
Xml
xml_to_array()
Convert the given XML to array:
xml_to_array('<?xml version="1.0"?> <Guys> <Good_guy Rating="100"> <name>Luke Skywalker</name> <weapon>Lightsaber</weapon> </Good_guy> <Bad_guy Rating="90"> <name>Sauron</name> <weapon>Evil Eye</weapon> </Bad_guy> </Guys> '); // [ // "Good_guy" => [ // "name" => "Luke Skywalker", // "weapon" => "Lightsaber", // "@attributes" => [ // "Rating" => "100", // ], // ], // "Bad_guy" => [ // "name" => "Sauron", // "weapon" => "Evil Eye", // "@attributes" => [ // "Rating" => "90", // ], // ], // ]
Alternatively, you can pass an instance of the SimpleXMLElement
class instead of a string.
array_to_xml()
Convert the given array to XML string:
$array = [ 'Good guy' => [ 'name' => 'Luke Skywalker', 'weapon' => 'Lightsaber', '@attributes' => [ 'Rating' => '100', ], ], 'Bad guy' => [ 'name' => 'Sauron', 'weapon' => 'Evil Eye', '@attributes' => [ 'Rating' => '90', ], ] ]; $xml = array_to_xml($array, 'Guys'); // <?xml version="1.0" encoding="utf-8"?> // <Guys> // <Good_guy Rating="100"> // <name>Luke Skywalker</name> // <weapon>Lightsaber</weapon> // </Good_guy> // <Bad_guy Rating="90"> // <name>Sauron</name> // <weapon>Evil Eye</weapon> // </Bad_guy> // </Guys>
Sponsors
License
Laravel Helper Functions is open-sourced software licensed under the MIT license.