magicoli / opensim-engine
OpenSimulator Engine - Framework-agnostic core functionality for OpenSim grids
Requires
- php: >=8.2
- ext-curl: *
- ext-filter: *
- ext-gettext: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-mysqli: *
- ext-pdo: *
- ext-session: *
- ext-simplexml: *
- laminas/laminas-escaper: ^2.12@stable
- magicoli/opensim-rest-php: ^1.1.1
- phpxmlrpc/phpxmlrpc: ^4.11
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^1.2
- magicoli/pest-failure-summary: ^1.0
- pestphp/pest: ^3.0
- phpcompatibility/php-compatibility: dev-develop
- squizlabs/php_codesniffer: ^4.0
Suggests
- ezyang/htmlpurifier: For advanced HTML sanitization if rich content is needed
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-03 22:38:43 UTC
README
Framework-agnostic PHP library for OpenSimulator grid management
⚠️ Important Notice
This is a pure PHP library - it does nothing by itself!
The OpenSimulator Engine provides core functionality for managing OpenSim grids, but requires a parent application to function. It handles database operations, configuration management, and OpenSim protocol communication, but provides no user interface or web endpoints.
📜 Project History
This library consolidates over a decade of OpenSimulator integration work that was previously scattered across multiple projects. While the dedicated engine repository is recent, the functionality has evolved through years of real-world usage in production OpenSim grids.
The code has been battle-tested across different implementations before being organized into this reusable, framework-agnostic library.
🎯 What This Library Does
- ✅ Database Operations - Robust/OpenSim database management
- ✅ OpenSim Protocol - REST API communication with grids
- ✅ Configuration Management - Grid and region settings management and storage
- ✅ Security Functions - Input validation and output escaping
- ✅ Form Generation - Dynamic configuration forms
- ✅ Installation - Process setup automation (initiated by parent)
🚫 What This Library Does NOT Do
- ❌ No web interface or HTML pages
- ❌ No user HTTP request handling
- ❌ No user authentication
- ❌ No WordPress or other CMS/framework dependencies
- ❌ No standalone application functionality
For Developers:
- Use this engine to build your own OpenSim management applications
- Integrate OpenSim functionality into existing PHP projects
- Create custom grid administration tools
🚀 Quick Start for End Users
Don't install this directly! Instead, choose a complete solution:
- W4OS WordPress Plugin - Complete WordPress integration for OpenSim grids. Best for: Complete integration in a WordPress website.
- OpenSim Helpers - Provides mainly helpers/ required by OpenSim grids to function properly, as well as minimal webui features. Best for: Separate helpers management, with minimal integration with the website.
🛠️ Developer Installation
As Composer Package
composer require magicoli/opensim-engine
As Git Submodule
git submodule add https://github.com/magicoli/opensim-engine.git engine
Usage in Code
// Bootstrap the engine require_once 'engine/bootstrap.php'; // or require_once 'vendor/magicoli/opensim-engine/bootstrap.php' if installed via composer // Engine provides the core classes and functions // See parent projects (W4OS, Helpers) for implementation examples
📚 Documentation
- Developer Guide - Architecture rules and patterns
- API Reference - (planned after migration completion)
- Examples - (planned after migration completion)
🤝 Contributing
This library follows strict architectural principles:
- Framework-agnostic (no WordPress, no Laravel, etc.)
- Pure data processing (no HTTP input/output)
- Explicit data passing (no global variables)
See DEVELOPERS.md for complete guidelines.
Note: The library is undergoing architectural migration. API documentation and examples will be added once the refactoring is complete and the API is stable.
📄 License
AGPLv3 - See LICENSE file for details.
🆘 Support
- End Users: Get support from the project using this engine (W4OS, Helpers)
- Developers: Create issues for bugs or feature requests https://github.com/magicoli/opensim-engine/issues
- Documentation: Check the parent project documentation first