{"id":14955163,"url":"https://github.com/cehojac/antonella-framework-for-wp","last_synced_at":"2026-01-27T17:00:54.691Z","repository":{"id":31302274,"uuid":"34864501","full_name":"cehojac/antonella-framework-for-wp","owner":"cehojac","description":"Framework for develop WordPress plugins based on Model View Controller","archived":false,"fork":false,"pushed_at":"2026-01-23T16:52:11.000Z","size":3371,"stargazers_count":20,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-23T17:15:16.652Z","etag":null,"topics":["antonella-framework","framework","mvc","php","php8","plugin","poo","wordpress","wordpress-development","wordpress-plugins"],"latest_commit_sha":null,"homepage":"https://antonellaframework.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cehojac.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-04-30T16:23:25.000Z","updated_at":"2026-01-23T16:51:09.000Z","dependencies_parsed_at":"2022-08-21T09:20:13.410Z","dependency_job_id":"b7c228a9-5dfc-4697-998c-c42ecc774ffd","html_url":"https://github.com/cehojac/antonella-framework-for-wp","commit_stats":{"total_commits":18,"total_committers":2,"mean_commits":9.0,"dds":0.05555555555555558,"last_synced_commit":"a0932696dee092864bb86f3796d4ee1b24c5710a"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/cehojac/antonella-framework-for-wp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cehojac%2Fantonella-framework-for-wp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cehojac%2Fantonella-framework-for-wp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cehojac%2Fantonella-framework-for-wp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cehojac%2Fantonella-framework-for-wp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cehojac","download_url":"https://codeload.github.com/cehojac/antonella-framework-for-wp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cehojac%2Fantonella-framework-for-wp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28816571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antonella-framework","framework","mvc","php","php8","plugin","poo","wordpress","wordpress-development","wordpress-plugins"],"created_at":"2024-09-24T13:10:36.147Z","updated_at":"2026-01-27T17:00:54.630Z","avatar_url":"https://github.com/cehojac.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Antonella Framework for WordPress\n\n![Antonella Framework](https://legacy.antonellaframework.com/wp-content/uploads/2018/06/anonella-repositorio.png)\n\n[![DeepWiki](https://img.shields.io/badge/DeepWiki-Antonella_Framework-blue?logo=wikipedia)](https://deepwiki.com/cehojac/antonella-framework-for-wp)\n\n[![Total Downloads](https://poser.pugx.org/cehojac/antonella-framework-for-wp/downloads)](https://packagist.org/packages/cehojac/antonella-framework-for-wp)\n[![Latest Version](https://poser.pugx.org/cehojac/antonella-framework-for-wp/v/stable)](https://packagist.org/packages/cehojac/antonella-framework-for-wp)\n[![License](https://poser.pugx.org/cehojac/antonella-framework-for-wp/license)](https://packagist.org/packages/cehojac/antonella-framework-for-wp)\n[![Gitter](https://badges.gitter.im/Antonella-Framework/community.svg)](https://gitter.im/Antonella-Framework/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\n**Framework for developing WordPress plugins based on Model View Controller with enterprise-level security**\n\n📖 **Full Documentation**: [https://antonellaframework.com](https://antonellaframework.com)  \n🎥 **Video Tutorial**: [https://tipeos.com/anto](https://tipeos.com/anto)\n\n---\n\n## ✨ What's New in Version 1.9.0\n\n### 🔒 **Enterprise-Level Security**\n- **CSRF Protection**: Automatic nonce verification\n- **Permission Control**: Granular user capability checks  \n- **Input Sanitization**: Automatic data cleaning\n- **Output Escaping**: XSS attack prevention\n- **Security Class**: Centralized API for all security functions\n\n### 🛠️ **Technical Improvements**\n- **PHP 8.2 Compatible**: Full compatibility with latest PHP\n- **Enhanced Headers**: Complete plugin metadata\n- **Docker Integration**: Improved development environment\n- **Auto Root File Change**: Automatic plugin file renaming\n\n---\n\n## 📋 Requirements\n\n### **Core Requirements**\n- **PHP**: 8.0 or higher\n- **Composer**: Latest version\n- **Git**: For version control\n- **WordPress**: 5.0 or higher\n\n### **Docker Development Environment**\n- **Docker Desktop**: 4.53.0+ (⚠️ **Required for ARM64/Windows compatibility**)\n- **Docker Compose**: v2.0+ \n- **Available Ports**: 8080 (WordPress), 3306 (MySQL), 9000 (phpMyAdmin)\n\n\u003e **💡 Note**: For optimal ARM64 compatibility on Windows/Mac, ensure Docker Desktop is updated to version 4.53.0 or higher. Earlier versions may experience container startup issues.\n\n---\n\n## 🚀 Quick Installation\n\n### 1. Create Your Plugin Project\nVia Antonella installer\n\n```bash\ncomposer global require cehojac/antonella-installer\nantonella new my-awesome-plugin\ncd my-awesome-plugin\n```\n\nor via composer CLI\n\n```bash\ncomposer create-project --prefer-dist cehojac/antonella-framework-for-wp my-awesome-plugin\ncd my-awesome-plugin\n```\n\n### 2. Initialize Your Project\n```bash\nphp antonella namespace MyPlugin\nphp antonella updateproject\n```\n\n### 3. Start Development\n\n#### **Option A: Traditional WordPress Development**\nYour plugin is now ready! Upload to WordPress and start developing.\n\n#### **Option B: Docker Development Environment**\nFor a complete development setup with database and admin interface:\n\n```bash\n# Start the development environment\nphp antonella serve\n# or manually with Docker Compose\ndocker compose up -d\n\n# Access your development site\n# WordPress: http://localhost:8080\n# Admin Panel: http://localhost:8080/wp-admin (test/test)\n# phpMyAdmin: http://localhost:9000\n```\n\n**🐳 Docker Environment Includes:**\n- WordPress with automatic framework activation\n- MySQL 8.0 with persistent data\n- phpMyAdmin for database management\n- WP-CLI for command automation\n- Development plugins (Query Monitor, Debug Bar)\n\n**📋 Default Credentials:**\n- **WordPress Admin**: `test` / `test`\n- **MySQL**: `wordpress` / `wordpress`\n\n\u003e **🔧 Troubleshooting**: If containers fail to start, ensure Docker Desktop is updated to 4.53.0+ and required ports (8080, 3306, 9000) are available.\n\n---\n\n## 🎯 Core Features\n\n### **Console Commands**\n| Command | Description |\n|---------|-------------|\n| `php antonella namespace FOO` | Rename namespace across all files |\n| `php antonella make MyController` | Create controller class |\n| `php antonella widget MyWidget` | Create widget class |\n| `php antonella helper myFunction` | Create helper function |\n| `php antonella cpt MyPostType` | Create custom post type |\n| `php antonella block MyBlock` | Create Gutenberg block |\n| `php antonella makeup` | Generate ZIP for distribution |\n| `php antonella serve` | Start development server |\n\n### **Security API**\n```php\nuse CH\\Security;\n\n// Verify user permissions\nSecurity::check_user_capability('manage_options');\n\n// Create secure forms\necho Security::create_nonce_field('my_action');\nSecurity::verify_nonce('my_nonce', 'my_action');\n\n// Sanitize input data\n$data = Security::sanitize_input($_POST['data'], 'text');\n\n// Escape output data\necho Security::escape_output($data);\n```\n\n### **Built-in Capabilities**\n- ✅ **MVC Architecture**: Clean separation of concerns\n- ✅ **Security First**: Enterprise-level protection\n- ✅ **Auto-loading**: PSR-4 compliant\n- ✅ **Blade Templates**: Optional template engine\n- ✅ **Custom Post Types**: Easy CPT creation\n- ✅ **Gutenberg Blocks**: Block development tools\n- ✅ **Docker Support**: Containerized development\n- ✅ **Testing Framework**: Built-in testing tools\n\n---\n\n## 🛡️ Security Features\n\n### **CSRF Protection**\n```php\n// In your form\necho Security::create_nonce_field('update_settings');\n\n// In your controller\nSecurity::verify_nonce('settings_nonce', 'update_settings');\n```\n\n### **Data Sanitization**\n```php\n$text = Security::sanitize_input($_POST['text'], 'text');\n$email = Security::sanitize_input($_POST['email'], 'email');\n$url = Security::sanitize_input($_POST['url'], 'url');\n$html = Security::sanitize_input($_POST['content'], 'html');\n```\n\n### **Output Escaping**\n```php\necho Security::escape_output($user_data, 'html');\necho '\u003cimg src=\"' . Security::escape_output($image_url, 'attr') . '\"\u003e';\necho '\u003cscript\u003evar data = ' . Security::escape_output($js_data, 'js') . ';\u003c/script\u003e';\n```\n\n---\n\n## 🐳 Development with Docker\n\n### Start Development Environment\n```bash\nphp antonella serve\n# or\nphp antonella serve -d  # detached mode\n```\n\n### Features Include:\n- WordPress latest version\n- PHP 8.2\n- MySQL 8.0\n- Automatic plugin installation\n- Hot reloading\n\n---\n\n## 📦 Plugin Distribution\n\n### Create Production ZIP\n```bash\nphp antonella makeup\n```\n\nThis command:\n- ✅ Excludes development files\n- ✅ Includes only production dependencies\n- ✅ Creates optimized ZIP file\n- ✅ Maintains proper file structure\n\n---\n\n## 🔧 Migration from 1.8.x\n\n### Update Your Controllers\n**Before (1.8.x):**\n```php\npublic function process_form() {\n    $data = $_POST['data'];\n    update_option('my_option', $data);\n}\n```\n\n**After (1.9.0):**\n```php\npublic function process_form() {\n    Security::check_user_capability('manage_options');\n    Security::verify_nonce('my_nonce', 'my_action');\n    \n    $data = Security::sanitize_input($_POST['data'], 'text');\n    update_option('my_option', $data);\n}\n```\n\n---\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n---\n\n## 📞 Support\n\n- **Documentation**: [antonellaframework.com/documentacion](https://antonellaframework.com/documentacion)\n- **Community Chat**: [Gitter](https://gitter.im/Antonella-Framework/community)\n- **Issues**: [GitHub Issues](https://github.com/cehojac/antonella-framework-for-wp/issues)\n- **Email**: antonella.framework@carlos-herrera.com\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🎉 Made with ❤️ by Carlos Herrera\n\n**Antonella Framework** - Making WordPress plugin development secure, fast, and enjoyable! \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcehojac%2Fantonella-framework-for-wp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcehojac%2Fantonella-framework-for-wp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcehojac%2Fantonella-framework-for-wp/lists"}