Skip to content

Automatically switches the order of function arguments and retries in case of a TypeError.

License

Notifications You must be signed in to change notification settings

tadaspaplauskas/anyway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anyway

Packagist Downloads

You've been working with PHP for years, yet still struggle to remember the order of arguments in functions like in_array, array_map, or implode? Don't worry, your struggles are finally over!

Installation

composer require tadaspaplauskas/anyway

Getting started

Quick! What's the first argument in the in_array function: array or value?

in_array([1, 2, 3], 2);

// TypeError
// in_array(): Argument #2 ($haystack) must be of type array, int given

You guessed wrong :(

Good thing that Anyway always knows what you meant:

use Anyway;

Anyway::in_array([1, 2, 3], 2);

// true

Anyway::in_array(4, [1, 2, 3]);

// false

Anyway will work with any function in the global space. Of course, if arguments don't make sense in any order, Anyway will still let you know about it:

use Anyway;

Anyway::in_array([1, 2, 3], fn () => 'what?');

// ErrorException
// Object of class Closure could not be converted to int

Limits

The package works with functions that expect arguments of different types. For example, it will not work with explode or strpos, because both expected arguments are strings.

License

This package is released under the MIT License. See LICENSE for details.

Disclaimer

I know this is silly :). The package was inspired by a tweet, take it with a grain of salt. While it's pretty harmless and can be used in production, you might get some weird looks from teammates. Best to treat this as a joke in a package form.

About

Automatically switches the order of function arguments and retries in case of a TypeError.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages