Thank you for considering contributing to the marketplace!
- Submit a Plugin - Share your plugin with the community
- Report Issues - Help us identify problems
- Improve Documentation - Make it easier for others
- Review Submissions - Help validate new plugins
- Ensure your plugin works with latest Symfony and PHP versions
- Test thoroughly in a real application
- Write clear documentation
- Follow security best practices
- Fork the repository
- Create your plugin directory in
plugins/ - Add required files (plugin.json, README.md, releases/*.zip)
- Test locally with validation script
- Submit Pull Request
- Respond to feedback from maintainers
plugins/your-plugin/
├── plugin.json # REQUIRED: Manifest
├── README.md # REQUIRED: Documentation
├── CHANGELOG.md # RECOMMENDED: Version history
└── releases/
└── 1.0.0.zip # REQUIRED: Packaged code
Must include:
name- Unique identifier (kebab-case)version- Semantic versiondescription- Clear, concise descriptionauthor- Your name or companylicense- Valid SPDX license identifiermainClass- FQN of main plugin class
- PSR-12 coding style
- Type declarations for all parameters and return types
- PHPDoc for public methods
- Error handling with proper exceptions
- Input validation for all user inputs
Must NOT include:
- eval(), exec(), system(), shell_exec()
- Obfuscated or encoded code
- Unauthorized network requests
- Hardcoded credentials
- SQL injection vulnerabilities
Must include:
- Input sanitization
- Output escaping
- Prepared statements for DB queries
- CSRF protection where applicable
Your README.md should include:
- Description - What does it do?
- Installation - How to install
- Configuration - Available options
- Usage - Code examples
- Hooks - Available actions/filters
- Troubleshooting - Common issues
- License - License information
Before submitting, test:
# Validate plugin structure
composer validate-plugin plugins/your-plugin
# Build marketplace index
composer build
# Check for errors
echo $?When updating your plugin:
- Increment version in
plugin.json - Add new ZIP to
releases/ - Update
CHANGELOG.md - Create PR with clear description of changes
- Automated checks run on PR
- Manual review by maintainers
- Feedback provided if issues found
- Approval and merge when ready
- Live within minutes of merge
- Be respectful and constructive
- Provide helpful feedback
- Welcome newcomers
- Follow community guidelines
- 📚 Read Plugin Development Guide
- 💬 Join Discussions
If you have questions about the contribution process, feel free to:
- Open an issue
- Start a discussion
- Contact maintainers
Thank you for contributing! 🎉