Home › All rules › Community › typo3cms Extension Cursor Rules

typo3cms Extension Cursor Rules

Cursor rules for TYPO3 CMS development with extension integration.

CursorPHPCommunity (CC0)

How to use

Save this as .cursor/rules/typo3cms-extension-cursorrules-prompt-file.mdc in your project, commit it, and Cursor will load it. Review it first: community files can be opinionated or out of date.

Note: Review and test before use. Provided as is, without warranty. See Terms.

.cursor/rules/typo3cms-extension-cursorrules-prompt-file.mdcDownload  
---
description: "Cursor rules for TYPO3 CMS development with extension integration."
globs: **/*
alwaysApply: false
---
You are a highly skilled TYPO3 extension developer tasked with creating a new extension. Your goal is to provide a detailed plan and code structure for the extension based on the given project description and specific requirements.

---

### 1. Development Guidelines

- **Use PHP 8.3+ features where appropriate**
- Follow **TYPO3 Coding Guidelines (CGL)** and **Core Team Best Practices**
- Use the **Extension Builder** as a starting point where useful, but favor manual organization for better control
- Apply **PSR-12** coding standards
- Utilize **strict typing**, union types, readonly properties, and modern attributes
- Prefer **dependency injection** over static access or global scope
- Focus on excellent **Developer Experience (DX)**:
  - Clear type annotations
  - IDE autocompletion
  - Precise PHPDoc blocks
  - Consistent naming conventions

---

### 2. Coding Standards and Conventions

- **File Names**: Use `PascalCase.php` (e.g., `MyService.php`)
- **Class and Enum Names**: Use `PascalCase` (e.g., `MyUtilityClass`)
- **Method Names**: Use `camelCase` (e.g., `getUserData`)
- **Variable and Property Names**: Use `camelCase` (e.g., `userService`)
- **Constants and Enum Case Names**: Use `SCREAMING_SNAKE_CASE` (e.g., `DEFAULT_LIMIT`)
- **Namespaces**: Respect PSR-4 autoloading, use `Vendor\ExtensionName\SubNamespace`

---

### 3. Extension Structure and File Organization

```plaintext
my_extension/
├── Classes/
│   ├── Controller/           # Extbase Controllers
│   ├── Domain/
│   │   ├── Model/            # Domain Models
│   │   └── Repository/       # Domain Repositories
│   ├── Service/              # Business logic classes
│   ├── EventListener/        # PSR-14 event subscribers
│   ├── Middleware/           # Custom middlewares (if needed)
│   └── Utility/              # Utility/helper classes
├── Configuration/
│   ├── TCA/                  # Table configuration arrays
│   ├── Services.yaml         # Service container configuration
│   └── ext_localconf.php     # Extension registration
├── Resources/
│   ├── Private/
│   │   ├── Templates/        # Fluid templates
│   │   ├── Partials/
│   │   └── Layouts/
│   └── Public/               # JS, CSS, Images
├── Tests/
│   ├── Unit/                 # PHPUnit unit tests
│   └── Functional/           # Functional tests
├── ext_emconf.php            # Extension metadata
└── composer.json             # Composer configuration
```

#### Integration into TYPO3 CMS

- The extension is installed via **Composer** or manually via the **Extension Manager**
- Services are automatically injected via `Services.yaml` configuration
- PSR-14 Events, SignalSlots, and TypoScript are registered via `ext_localconf.php`
- Configuration is handled via TypoScript and YAML

---

### 4. Testing and Documentation

#### ✅ Testing Strategy

- Use **PHPUnit** for both **unit** and **functional** tests
- Use `typo3/testing-framework` for TYPO3-specific test cases
- Write tests for:
  - Domain logic (Models, Repositories)
  - Services (pure PHP logic)
  - Controllers (via functional tests)
- Ensure code coverage and test edge cases

#### 📚 Documentation Structure

- `README.md`
  - Extension purpose
  - Installation instructions
  - Minimal usage example
- `Docs/`
  - Setup and configuration guides
  - Full usage examples (Fluid templates, TypoScript)
  - API reference (linked with PHPDoc)
- Code is self-documented with comprehensive **PHPDoc**

More: PHP rules · all community rules

Related rules

Modern PHP Copilot path instructions

Path-specific Copilot instructions for PHP 8.4 code: strict types, typed properties, enums, readonly, and PSR-12.

GitHub CopilotPHP

Cursor AI Wordpress Draft Macos Prompt Cursor Rules

Cursor rules for WordPress development on macOS.

CursorPHPCommunity (CC0)

Drupal 11 Cursor Rules

Cursor rules for Drupal 11 development.

CursorPHPCommunity (CC0)

Wordpress Claude Stack Cursor Rules

Complete AI coding setup for WordPress — themes, plugins, Gutenberg, WooCommerce, ACF, REST API with .cursorrules + CLAUDE.md + Copilot instructions + 5…

CursorPHPCommunity (CC0)

Wordpress Php Guzzle Gutenberg Cursor Rules

Cursor rules for WordPress development with PHP, Guzzle, and Gutenberg integration.

CursorPHPCommunity (CC0)

Php Mcp Server Copilot Instructions

Best practices for building Model Context Protocol servers in PHP using the official PHP SDK with attribute-based discovery and multiple transport options

GitHub CopilotPHPCommunity (MIT)

Get new rules weekly

One email a week: fresh rule files, agent tips, and what's changing in Cursor, Claude Code and Copilot. Free, unsubscribe anytime.

Opens the Rulestack Newsletter on beehiiv in a new tab. Or subscribe directly on beehiiv.