Let's say
a) I have trait and use it in another class. I know how that works.
b) I have normal random class called Helper and I have functions in that Helper class and I include that class in another class. I can use those helper class's functions in another class by using
Helper::method()
if method is static or use new keyword and use the method like
$helper->method().
c) I can have just a PHP file and functions in it, no class at all. I can include it in another class and just use it just this way:
method()
d) I can have a class, and then another class can extend it and have its functions, but this way is bad, as I can't extend two classes at the same time.
Why is using trait the best way compared to b) and c) solutions?