Initial commit
This commit is contained in:
222
skills/symfony-skill/README.md
Normal file
222
skills/symfony-skill/README.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# Symfony Framework Development Skill
|
||||
|
||||
## Overview
|
||||
|
||||
This skill provides comprehensive guidance and tools for developing applications with Symfony 6.4, the leading PHP framework for web applications, APIs, and microservices.
|
||||
|
||||
## Features
|
||||
|
||||
- **Complete Symfony 6.4 Documentation**: Core concepts, best practices, and advanced patterns
|
||||
- **Code Generation Scripts**: Automated tools for entity and CRUD generation
|
||||
- **Deployment Automation**: Production-ready deployment scripts
|
||||
- **Security Configurations**: Advanced authentication and authorization patterns
|
||||
- **Performance Optimization**: Caching strategies and query optimization techniques
|
||||
- **Testing Strategies**: Unit, functional, and integration testing patterns
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
symfony-skill/
|
||||
├── SKILL.md # Main skill file with core instructions
|
||||
├── README.md # This file
|
||||
├── LICENSE # MIT License
|
||||
├── scripts/ # Automation scripts
|
||||
│ ├── generate-entity.php # Entity generator
|
||||
│ ├── generate-crud.php # CRUD generator
|
||||
│ └── deploy.sh # Deployment automation
|
||||
└── references/ # Detailed documentation
|
||||
├── doctrine-advanced.md # Advanced ORM patterns
|
||||
├── security-detailed.md # Security configurations
|
||||
└── testing-complete.md # Testing strategies
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Using the Skill
|
||||
|
||||
1. **Load the skill** in your Claude conversation
|
||||
2. **Reference specific topics** when needed
|
||||
3. **Use scripts** for code generation tasks
|
||||
4. **Check references** for detailed documentation
|
||||
|
||||
### Common Commands
|
||||
|
||||
```bash
|
||||
# Create new Symfony project
|
||||
symfony new my_project --version="6.4.*" --webapp
|
||||
|
||||
# Generate entity
|
||||
php scripts/generate-entity.php Product name:string price:decimal
|
||||
|
||||
# Generate CRUD
|
||||
php scripts/generate-crud.php Product
|
||||
|
||||
# Deploy application
|
||||
./scripts/deploy.sh production main
|
||||
```
|
||||
|
||||
## Key Capabilities
|
||||
|
||||
### 1. Project Setup & Configuration
|
||||
- Environment configuration
|
||||
- Service container setup
|
||||
- Bundle management
|
||||
- Package installation
|
||||
|
||||
### 2. Development Patterns
|
||||
- MVC architecture
|
||||
- Dependency injection
|
||||
- Event-driven programming
|
||||
- Repository pattern
|
||||
- Service layer pattern
|
||||
|
||||
### 3. Database & ORM
|
||||
- Entity management
|
||||
- Relationships mapping
|
||||
- Query optimization
|
||||
- Migration strategies
|
||||
- Performance tuning
|
||||
|
||||
### 4. Security
|
||||
- Authentication methods
|
||||
- Authorization with voters
|
||||
- JWT tokens
|
||||
- OAuth integration
|
||||
- Two-factor authentication
|
||||
|
||||
### 5. API Development
|
||||
- RESTful APIs
|
||||
- GraphQL integration
|
||||
- API versioning
|
||||
- Rate limiting
|
||||
- CORS configuration
|
||||
|
||||
### 6. Testing
|
||||
- Unit testing
|
||||
- Functional testing
|
||||
- Integration testing
|
||||
- Test fixtures
|
||||
- Mocking strategies
|
||||
|
||||
### 7. Performance
|
||||
- Caching strategies
|
||||
- Query optimization
|
||||
- Asset optimization
|
||||
- Profiling tools
|
||||
- Production optimization
|
||||
|
||||
### 8. Deployment
|
||||
- Environment preparation
|
||||
- Automated deployment
|
||||
- Zero-downtime deployment
|
||||
- Rollback procedures
|
||||
- Health checks
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Creating a New Feature
|
||||
|
||||
1. **Generate the entity**:
|
||||
```bash
|
||||
php scripts/generate-entity.php Article title:string content:text author:relation:ManyToOne:User
|
||||
```
|
||||
|
||||
2. **Create the CRUD**:
|
||||
```bash
|
||||
php scripts/generate-crud.php Article
|
||||
```
|
||||
|
||||
3. **Add business logic** in services
|
||||
4. **Write tests** for the feature
|
||||
5. **Deploy** using the deployment script
|
||||
|
||||
### API Development
|
||||
|
||||
1. **Create API controller** using the --api flag:
|
||||
```bash
|
||||
php scripts/generate-crud.php Product --api
|
||||
```
|
||||
|
||||
2. **Configure serialization groups** in your entity
|
||||
3. **Add validation rules**
|
||||
4. **Implement authentication**
|
||||
5. **Document with OpenAPI/Swagger**
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Always use dependency injection** - Never instantiate services manually
|
||||
2. **Keep controllers thin** - Move business logic to services
|
||||
3. **Write tests first** - Follow TDD approach for critical features
|
||||
4. **Cache expensive operations** - Use Symfony's cache component
|
||||
5. **Optimize database queries** - Use eager loading and query optimization
|
||||
6. **Follow Symfony conventions** - Use recommended directory structure and naming
|
||||
7. **Use environment variables** - For configuration that changes between environments
|
||||
8. **Implement proper error handling** - Use exceptions and proper HTTP status codes
|
||||
9. **Document your code** - Use PHPDoc and keep documentation updated
|
||||
10. **Regular security updates** - Keep dependencies updated and check for vulnerabilities
|
||||
|
||||
## Common Issues & Solutions
|
||||
|
||||
### Issue: Services not autowiring
|
||||
**Solution**: Check service configuration and ensure autowiring is enabled
|
||||
|
||||
### Issue: Database connection errors
|
||||
**Solution**: Verify DATABASE_URL in .env file and database credentials
|
||||
|
||||
### Issue: Cache permissions
|
||||
**Solution**: Set proper permissions on var/cache directory
|
||||
|
||||
### Issue: Route not found
|
||||
**Solution**: Clear cache and check route configuration with debug:router
|
||||
|
||||
### Issue: Migration failures
|
||||
**Solution**: Check migration status and resolve conflicts manually if needed
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP 8.1 or higher
|
||||
- Composer
|
||||
- Symfony CLI (recommended)
|
||||
- Database (MySQL/PostgreSQL/SQLite)
|
||||
- Web server (Apache/Nginx)
|
||||
- Node.js & NPM (for assets)
|
||||
|
||||
## Compatibility
|
||||
|
||||
- Symfony 6.4 LTS
|
||||
- PHP 8.1, 8.2, 8.3
|
||||
- MySQL 5.7+, PostgreSQL 10+, SQLite 3+
|
||||
- Compatible with Docker environments
|
||||
|
||||
## Contributing
|
||||
|
||||
This skill is designed to be extended. To add new capabilities:
|
||||
|
||||
1. Update SKILL.md with new patterns
|
||||
2. Add scripts to scripts/ directory
|
||||
3. Create reference documentation in references/
|
||||
4. Test thoroughly before deployment
|
||||
|
||||
## Support
|
||||
|
||||
For Symfony-specific questions:
|
||||
- Official Documentation: https://symfony.com/doc/6.4/
|
||||
- Symfony Slack: https://symfony.com/slack
|
||||
- Stack Overflow: Tag with `symfony`
|
||||
|
||||
## Version History
|
||||
|
||||
- **1.0.0** - Initial release with Symfony 6.4 support
|
||||
- Complete documentation coverage
|
||||
- Entity and CRUD generators
|
||||
- Deployment automation
|
||||
- Advanced patterns documentation
|
||||
|
||||
## License
|
||||
|
||||
MIT License - See LICENSE file for details
|
||||
|
||||
## Credits
|
||||
|
||||
Created for Claude AI to enhance Symfony development capabilities.
|
||||
Based on official Symfony 6.4 documentation and community best practices.
|
||||
Reference in New Issue
Block a user