Using the factory
Besides \Jawira\CaseConverter\Convert you also have at your disposal:
\Jawira\CaseConverter\CaseConverter\Jawira\CaseConverter\CaseConverterInterface
Instead of using new Convert(); you can use the convenience method from
CaseConverter class.
In concrete, you have to call \Jawira\CaseConverter\CaseConverter::convert to
create Convert objects.
Here an example:
<?php
namespace App;
use Jawira\CaseConverter\CaseConverterInterface;
class MySuperNameCreator
{
protected $cc;
public function __construct(CaseConverterInterface $cc)
{
$this->cc = $cc;
}
public function variableName(string $slug): string
{
// `->convert()` returns a `Convert` object.
$myConvert = $this->cc->convert($slug);
return $myConvert->toCamel();
}
public function constantName(string $slug): string
{
// Of course you can also chain everything.
return $this->cc->convert($slug)->fromKebab()->toMacro();
}
}
Please note that an interface -CaseConverterInterface- is also provided. If
you are using Symfony you can use this interface with Symfony autowiring
to automatically instantiate CaseConverter, otherwise if you are working in a
standalone project you should try php-di project.
Using \Jawira\CaseConverter\CaseConverter::convert is preferred because:
- Usually the
newoperator is considered harmful. - You can easily mock dependencies when writing tests.
- It's SOLID