| Recommend this page to a friend! | 
|  Download | 
| Info | Example |  Files |  Install with Composer |  Download | Reputation | Support forum | Blog | Links | 
| Ratings | Unique User Downloads | Download Rankings | ||||
| Not enough user ratings | Total: 102 | All time:  9,786 This week: 206  | ||||
| Version | License | PHP version | Categories | |||
| case-converter 1.0 | Custom (specified... | 5 | PHP 5, Text processing | 
| Description | Author | |
| This package can be used to convert strings between many naming conventions. Innovation Award | 
To use Case Converter you have to instantiate Convert class, then you
should call to*() methods.
Code:
<?php declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use Jawira\CaseConverter\Convert;
$robot = new Convert('The-Terminator');
echo $robot->toPascal() . PHP_EOL;
echo $robot->toCobol() . PHP_EOL;
echo $robot->toSnake() . PHP_EOL;
Output:
TheTerminator
THE-TERMINATOR
the_terminator
In some edge cases you have to explicitly set the format of input string to have the desired output:
<?php declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use Jawira\CaseConverter\Convert;
$agency = new Convert('FBI');
$agency->fromAda();
echo $agency->toCobol();   // output: FBI
echo $agency->toSnake();   // output: fbi
$agency->fromCamel();
echo $agency->toCobol();   // output: F-B-I
echo $agency->toSnake();   // output: f_b_i
$agency->fromAuto();
echo $agency->toCobol();   // output: FBI
echo $agency->toSnake();   // output: fbi
You can still use _Simple Case-Mapping_ even if you are using PHP 7.3 or newer:
<?php declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use Jawira\CaseConverter\Convert;
$robot = new Convert('Straße');
$robot->forceSimpleCaseMapping();
echo $robot->toMacro();     // output: STRAßE
[Learn more about Case-Mapping][Case-Mapping].
[CaseConverter factory] is going to instantiate Convert class for you.
Everything else is the same:
// Convert string to Pascal case
$this->cc->convert('XML')->toPascal();                      // Xml
// Convert string to Snake case
$this->cc->convert('v3.0.2')->toSnake();                  // v3_0_2
// Convert string to Camel case
$this->cc->convert('first-name')->toCamel();              // firstName
// Convert from Lower case to Dot case
$this->cc->convert('non-SI units')->fromLower()->toDot(); // non-si.units
// Get detected words
$this->cc->convert('Mario Bros')->toArray();              // ['Mario', 'Bros']
// Retrieve original string
$this->cc->convert('use_the_force')->getSource();         // use_the_force
[Case-Mapping]: ./case-mapping.md [CaseConverter factory]: ./using-the-factory.md
Use this library to convert string between:
| Name          | Method          | Output example    |
| ------------- | --------------- | ----------------- |
| ? Camel case   | toCamel()     | myNameIsBond    |
| ??? Pascal case  | toPascal()    | MyNameIsBond    |
| ? Snake case   | toSnake()     | my_name_is_bond |
| ??? Ada case     | toAda()       | My_Name_Is_Bond |
| ?? Macro case | toMacro()     | MY_NAME_IS_BOND |
| ? Kebab case   | toKebab()     | my-name-is-bond |
| ? Train case   | toTrain()     | My-Name-Is-Bond |
| ? Cobol case   | toCobol()     | MY-NAME-IS-BOND |
| ? Lower case   | toLower()     | my name is bond |
| ? Upper case   | toUpper()     | MY NAME IS BOND |
| ? Title case     | toTitle()     | My Name Is Bond |
| ?? Sentence case | toSentence()  | My name is bond |
| ?? Dot notation  | toDot()       | my.name.is.bond |
Features:
Input string (i.e. _john-connor_) format is going to be [detected automatically][detection algorithm]. Here's an example:
use Jawira\CaseConverter\Convert;
$hero = new Convert('john-connor');
echo $hero->toCamel();   // output: johnConnor
Of course you can explicitly set the format of input string:
echo $hero->fromKebab()->toSnake();   // output: john_connor
You can also use the [provided factory][factory] to instantiate Convert class.
A list of [all public methods] is also available.
Fully compatible with non-english alphabets:
// Spanish
$esp = new Convert('DON_RAMÓN_Y_ÑOÑO');
echo $esp->toCamel();   // output: donRamónYÑoño
// Greek
$grc = new Convert('????-????');
echo $grc->toCamel();   // output: ????????
// Russian
$rus = new Convert('?????_???????');
echo $rus->toCamel();   // output: ????????????
case-converter is compatible with _Simple Case-Mapping_ and _Full 
Case-Mapping_. [Learn more about Case-Mapping][Case-Mapping].
$ composer require jawira/case-converter
<https://jawira.github.io/case-converter/>
If you liked this project, ? star it on [GitHub].
This library is licensed under the [MIT LICENSE].
<!--mkdocs: Do not use relative path for links and images-->
[all public methods]: https://jawira.github.io/case-converter/api.html [CONTRIBUTING.md]: https://jawira.github.io/case-converter/contributing.html [Countable interface]: https://php.net/manual/en/class.countable.php [Case-Mapping]: https://jawira.github.io/case-converter/case-mapping.html [magic method]: https://www.php.net/manual/en/language.oop5.magic.php#object.tostring [MIT LICENSE]: https://jawira.github.io/case-converter/license.html [open an issue]: https://github.com/jawira/case-converter/issues/new [detection algorithm]: https://jawira.github.io/case-converter/detection-algorithm.html [factory]: https://jawira.github.io/case-converter/using-the-factory.html [GitHub]: https://github.com/jawira/case-converter/
*
<dl>
<dt><a href="https://packagist.org/packages/jawira/emoji-catalog">jawira/emoji-catalog</a> (library)</dt> <dd>Get access to +3000 emojis as class constants.</dd>
<dt><a href="https://packagist.org/packages/jawira/phing-visualizer">jawira/phing-visualizer</a> (library)</dt> <dd>Graphical representation of Phing's buildfile.</dd>
<dt><a href="https://packagist.org/packages/jawira/phing-open-task">jawira/phing-open-task</a> (library)</dt> <dd>Phing task to open files, directories, and URLs with your favorite software.</dd>
<dt><a href="https://packagist.org/packages/jawira/">more...</a></dt> </dl>
|  Files (81) | 
| File | Role | Description | ||
|---|---|---|---|---|
|  .idea (1 file, 1 directory) | ||||
|  config (2 files) | ||||
|  docs (8 files, 1 directory) | ||||
|  src (4 files, 2 directories) | ||||
|  tests (2 directories) | ||||
|    .codeclimate.yml | Data | Auxiliary data | ||
|    .editorconfig | Data | Auxiliary data | ||
|    .travis.yml | Data | Auxiliary data | ||
|    build.xml | Data | Auxiliary data | ||
|    CHANGELOG.md | Data | Auxiliary data | ||
|    composer.json | Data | Auxiliary data | ||
|    CONTRIBUTING.md | Data | Auxiliary data | ||
|    LICENSE.md | Lic. | License text | ||
|    mkdocs.yml | Data | Auxiliary data | ||
|    phive.xml | Data | Auxiliary data | ||
|    README.md | Doc. | Documentation | ||
|  Files (81) | / | config | 
| File | Role | Description | 
|---|---|---|
|    behat.yml | Data | Auxiliary data | 
|    phpunit.xml | Data | Auxiliary data | 
|  Files (81) | / | docs | 
| File | Role | Description | ||
|---|---|---|---|---|
|  images (6 files) | ||||
|    api.md | Data | Auxiliary data | ||
|    case-mapping.md | Data | Auxiliary data | ||
|    detection-algorithm.md | Data | Auxiliary data | ||
|    dev.md | Data | Auxiliary data | ||
|    examples.md | Example | Example script | ||
|    known-issues.md | Data | Auxiliary data | ||
|    naming-conventions.md | Data | Auxiliary data | ||
|  using-the-factory.md | Class | Class source | ||
|  Files (81) | / | docs | / | images | 
| File | Role | Description | 
|---|---|---|
|    build.puml | Data | Auxiliary data | 
|    detection-algorithm.puml | Data | Auxiliary data | 
|    number-problem.puml | Data | Auxiliary data | 
|    uml-case-converter.puml | Data | Auxiliary data | 
|    uml-glue.puml | Data | Auxiliary data | 
|    uml-split.puml | Data | Auxiliary data | 
|  Files (81) | / | src | 
| File | Role | Description | ||
|---|---|---|---|---|
|  Glue (18 files) | ||||
|  Split (6 files) | ||||
|  CaseConverter.php | Class | Class source | ||
|  CaseConverterException.php | Class | Class source | ||
|  CaseConverterInterface.php | Class | Class source | ||
|  Convert.php | Class | Class source | ||
|  Files (81) | / | src | / | Glue | 
| File | Role | Description | 
|---|---|---|
|  AdaCase.php | Class | Class source | 
|  CamelCase.php | Class | Class source | 
|  CobolCase.php | Class | Class source | 
|  DashGluer.php | Class | Class source | 
|  DotNotation.php | Class | Class source | 
|  Gluer.php | Class | Class source | 
|  KebabCase.php | Class | Class source | 
|  LowerCase.php | Class | Class source | 
|  MacroCase.php | Class | Class source | 
|  PascalCase.php | Class | Class source | 
|  SentenceCase.php | Class | Class source | 
|  SnakeCase.php | Class | Class source | 
|  SpaceGluer.php | Class | Class source | 
|  TitleCase.php | Class | Class source | 
|  TrainCase.php | Class | Class source | 
|  UnderscoreGluer.php | Class | Class source | 
|  UpperCase.php | Class | Class source | 
|  UppercaseGluer.php | Class | Class source | 
|  Files (81) | / | src | / | Split | 
| File | Role | Description | 
|---|---|---|
|  DashSplitter.php | Class | Class source | 
|  DotSplitter.php | Class | Class source | 
|  SpaceSplitter.php | Class | Class source | 
|  Splitter.php | Class | Class source | 
|  UnderscoreSplitter.php | Class | Class source | 
|  UppercaseSplitter.php | Class | Class source | 
|  Files (81) | / | tests | / | behat | 
| File | Role | Description | ||
|---|---|---|---|---|
|  bootstrap (1 file) | ||||
|    case-converter.feature | Data | Auxiliary data | ||
|  Files (81) | / | tests | / | phpunit | 
| File | Role | Description | 
|---|---|---|
|  AdaCaseTest.php | Class | Class source | 
|  CamelCaseTest.php | Class | Class source | 
|  CaseConverterTest.php | Class | Class source | 
|  CobolCaseTest.php | Class | Class source | 
|  ConvertTest.php | Class | Class source | 
|  DashSplitterTest.php | Class | Class source | 
|  DotNotationTest.php | Class | Class source | 
|  DotSplitterTest.php | Class | Class source | 
|  GluerTest.php | Class | Class source | 
|  KebabCaseTest.php | Class | Class source | 
|  LowerCaseTest.php | Class | Class source | 
|  MacroCaseTest.php | Class | Class source | 
|  PascalCaseTest.php | Class | Class source | 
|  SentenceCaseTest.php | Class | Class source | 
|  SnakeCaseTest.php | Class | Class source | 
|  SpaceSplitterTest.php | Class | Class source | 
|  SplitterTest.php | Class | Class source | 
|  TitleCaseTest.php | Class | Class source | 
|  TrainCaseTest.php | Class | Class source | 
|  UnderscoreSplitterTest.php | Class | Class source | 
|  UppercaseSplitterTest.php | Class | Class source | 
|  UpperCaseTest.php | Class | Class source | 
| The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page. | 
|  Install with Composer | 
| Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
| 100% | 
 | 
 | 
| Applications that use this package | 
 If you know an application of this package, send a message to the author to add a link here.
 If you know an application of this package, send a message to the author to add a link here.