justinlawrencems / quixotify
A package to generate ipsum text from Don Quixote API
Installs: 30
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/justinlawrencems/quixotify
Requires
- php: ^8.0
- doctrine/dbal: ^4.2
- doctrine/doctrine-fixtures-bundle: ^3.6
- doctrine/orm: ^3.3
- guzzlehttp/guzzle: ^7.4
- symfony/dependency-injection: ^7.1
Requires (Dev)
- phpunit/phpunit: ^11.4
This package is auto-updated.
Last update: 2025-12-10 23:18:16 UTC
README
Quixotify is a text generation library designed to retrieve and manipulate text excerpts from Miguel de Cervantes' Don Quixote. This library supports generating text based on characters, words, or sentences and includes functionalities to handle different output languages.
Features
- Fetch random text excerpts from an SQLite database.
- Generate text by a specified number of characters, words, or sentences.
- Support for multiple languages (English and Spanish).
- Handles edge cases with missing or insufficient data.
Installation
- Clone the repository or include the classes in your project:
git clone https://github.com/yourusername/quixotify.git
- Ensure you have PHP 8.0+ and PDO SQLite installed.
- Place your SQLite database (
database.db) in the same directory as theControllerclass.
Classes Overview
Controller
The Controller class is responsible for connecting to the database, validating input, and generating text.
Constructor
$controller = new Controller("Spanish");
$outputLanguage: Optional. Defaults to English ("don_quixote_english_texts"). Use"Spanish"for Spanish.
Public Methods
generateText(string $unit, int $quantity): string
Generate text based on the unit (characters,words, orsentences) and quantity.
Public Methods
generate(string $type, int $amount): string
Calls theControllerto generate text, with additional error handling.
Usage
-
Initialize the
Controllerclass:use Quixotify\Controller; $controller = new Controller("Spanish"); // For Spanish texts
-
Generate text using the
Controller:$text = $controller->generateText('words', 50); echo $text;
-
Or, use the
Generatorclass for better error handling:use Quixotify\Generator; $controller = new Controller("Spanish"); $generator = new Generator($controller); $text = $generator->generate('characters', 100); echo $text;
Database Schema
The database should have the following schema:
| Column | Type | Description |
|---|---|---|
id |
INTEGER | Primary key (auto-increment) |
text |
TEXT | The excerpt of text |
word_count |
INTEGER | Number of words in the text |
Ensure the database has two tables:
don_quixote_english_textsdon_quixote_spanish_texts
Error Handling
- Invalid Input: Throws exceptions if the input quantity is non-positive or the unit is invalid.
- Insufficient Data: Automatically fetches additional rows to meet the requested amount.
Contributing
Contributions are welcome! Please submit a pull request or open an issue for bugs, features, or enhancements.
License
This project is licensed under the MIT License. See the LICENSE file for details.