A modern PHP library for encoding and decoding Morse code with extended configuration options.
Report a Bug · New Pull Request
- Encode and decode Morse code seamlessly.
- Customizable delimiters for letters and words.
- Multiple handling options for unknown characters.
- Configurable case preservation.
- Structured error handling with custom exceptions.
- Fully object-oriented and extensible.
This library can be easily installed using Composer, a modern PHP dependency manager.
If you don't have Composer installed, you can download and install it by following the instructions on the official Composer website.
Once Composer is installed, you can install the morse-code
library by running the following command in your project's root directory:
composer require ramazancetinkaya/morse-code
Alternatively, download the source code and include it in your project manually.
- PHP 8.0 or higher.
- No additional dependencies.
require 'vendor/autoload.php'; // Include Composer's autoloader
use ramazancetinkaya\{MorseTranslator, MorseCodeConfig, UnknownCharHandling};
// Create a configuration where unknown characters are replaced with '?'
// and we separate letters with a single space, words with ' / ',
// and DO NOT preserve original case (defaults to uppercase).
$config = new MorseCodeConfig(
unknownCharHandling: UnknownCharHandling::REPLACE,
replacementChar: '?',
preserveCase: false,
letterDelimiter: ' ', // single space between letters
wordDelimiter: ' / ' // slash and spaces between words
);
// Create the translator
$translator = new MorseTranslator();
// Sample text to encode
$text = "Hello, World!";
try {
// Encoding
$encoded = $translator->encode($text, $config);
echo "Original: {$text}\n";
echo "Encoded: {$encoded}\n";
// Decoding
$decoded = $translator->decode($encoded, $config);
echo "Decoded: {$decoded}\n";
} catch (MorseCodeException $exception) {
// Handle or log the exception
echo "Morse Code Error: " . $exception->getMessage() . "\n";
}
Option | Description |
---|---|
unknownCharHandling |
Defines how unknown characters are handled (IGNORE , REPLACE , THROW_EXCEPTION ). |
replacementChar |
Specifies the character used when REPLACE mode is enabled. |
preserveCase |
If true , preserves original case; otherwise, converts text to uppercase. |
letterDelimiter |
Defines the separator between Morse code letters. |
wordDelimiter |
Defines the separator between Morse code words. |
This project is licensed under the MIT License. See the LICENSE file for more details.
Contributions are welcome! Please feel free to submit a pull request or open an issue for any enhancements or bug fixes.
Developed by Ramazan Çetinkaya.