ramazancetinkaya / morse-code
A simple PHP library for converting text to Morse code and vice versa
Requires
- php: >=8.0
README
A modern PHP library for encoding and decoding Morse code with extended configuration options.
Report a Bug · New Pull Request
Features
- 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.
Installation
This library can be easily installed using Composer, a modern PHP dependency manager.
Step 1: Install Composer
If you don't have Composer installed, you can download and install it by following the instructions on the official Composer website.
Step 2: Install the Library
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.
Requirements
- PHP 8.0 or higher.
- No additional dependencies.
Usage
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"; }
Configuration Options
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. |
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue for any enhancements or bug fixes.
Author
Developed by Ramazan Çetinkaya.