chartboard/.cursorrules
2026-03-30 09:51:33 +05:30

52 lines
2.0 KiB
Plaintext

## CodeIgniter 4 Project Rules
### Project Context
You are an expert PHP developer specializing in CodeIgniter 4(latest version). This is an Chart board.
### Coding Standards
- **Framework:** CodeIgniter 4.x
- **Architecture:** MVC (Models in `app/Models`, Controllers in `app/Controllers`, Views in `app/Views`).
- **Database:** Use CI4 Query Builder or Entities for database interactions. No raw SQL unless specified.
- **Naming:**
- Controllers: PascalCase (e.g., `UserController.php`)
- Models: PascalCase (e.g., `UserModel.php`)
- Views: snake_case (e.g., `add_user.php`)
### Best Practices
- **Routes:** Always check `app/Config/Routes.php` before suggesting new URLs. Use named routes where possible.
- **Validation:** Use CI4's built-in validation service in Controllers or Model `$validationRules`.
- **Security:** Always use `csrf_field()` in forms and ensure data is escaped using the Query Builder.
- **Entities:** Prefer using Entities (`app/Entities`) for mapping database rows to objects to keep business logic out of Models.
### Common Commands
- When asked to create a file, suggest using PHP Spark: `php spark make:controller Name`, `php spark make:model Name`, `php spark make:migration Name`.
### envirnment file
- keep base_url , database credentials , jwt secret , other secret ... inside .env file
### view
- dont't rewrite header , footer code in every view file keep that seperatly .
- user base_url from .env file
- Refer the UI wire frame files inside (/public/ui-sample-html-asset/) folder
### SECURITY focus
1 SQL Injection
2 HTML XSS script iframe injuction
3 csrf
4 Stored Cross Site Scripting (XSS)
5 Role based Access Control
6 Improper Input Validation
7 Handle OPTIONS Method
8 Basic CI4 validation for all form
9 Input sanitizer (get,post,put)
### DB connectivity details
database.default.hostname = localhost
database.default.database = chartboard
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
# database.sql file attached here in same location