netiCRM/CiviCRM PHP backend standards for BAO, DAO, Form, and API classes. Use when writing PHP in /CRM/, implementing BAO business logic, Form handlers, API v3 endpoints, Menu XML routes, or checking permissions. Ensures CiviCRM class hierarchy, naming conventions, and security practices.
This skill provides project-specific PHP backend standards for netiCRM/CiviCRM. It bridges the gap between general PHP knowledge and the CiviCRM-specific architecture this project requires.
Key principle: CiviCRM has a rigid class hierarchy (DAO → BAO → Form/Page). Knowing PHP ≠ knowing where and how to implement logic correctly.
CRM_Core_Transaction → /CRM/Core/Transaction.php
CRM_Contribute_BAO_Contribution → /CRM/Contribute/BAO/Contribution.php
CRM_Contribute_Form_Contribution → /CRM/Contribute/Form/Contribution.php
| Layer | Location | Responsibility |
|-------|----------|---------------|
| DAO | /CRM/**/DAO/ | Auto-generated from XML — never edit manually |
| BAO | /CRM/**/BAO/ | Business logic — implement here |
| Form | /CRM/**/Form/ | Form handling: preProcess() → buildForm() → postProcess() |
| API | /api/v3/ | External API endpoints |
CRM_Contribute_BAO_Contribution)processContribution())_camelCase (underscore prefix)=== and !==TRUE, FALSE, NULL — uppercase[] alwayselse/elseif/catch on next line after }references/php-patterns.md for detailed patternsts()Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer