RuleStack

Configs

Stacks

Compare

Diff

RuleStack

Configs

Stacks

Compare

Diff

Read API

RuleStack

Configs

Stacks

Compare

Diff

Read API

Configs/Cursor rules/WisdmLabs/moodle-local_edwiserreports-free

Cursor rule

.cursor/rules/moodle-database-patterns.mdc

[object Object]

Cursor rules

Quality

54/100

Scores the file, not the repository.

Length

253 words

5 headings · 1 code blocks

Repository

4

— · pushed 2 days ago

Last changed

3 days ago

First indexed 3 days ago.
WisdmLabs/moodle-local_edwiserreports-free/.cursor/rules/moodle-database-patterns.mdcRawGitHub
1---
2description:
3globs:
4alwaysApply: false
5---
6# Moodle Database Patterns
7 
8## Purpose
9Ensure consistent and efficient database interactions using Moodle's database abstraction layer.
10 
11## Instructions
12When working with databases in Moodle PHP code, follow these patterns:
13 
141. **Use Moodle's Database API**: Always use `$DB` global object, never direct MySQL functions
152. **Parameterized Queries**: Use `$DB->get_records_sql()` with parameters for complex queries
163. **Simple Queries**: Use `$DB->get_records()`, `$DB->get_record()`, `$DB->insert_record()`, etc.
174. **Transactions**: Use `$DB->transaction_start()` and `$DB->transaction_commit()` for multi-table operations
185. **Error Handling**: Always check return values and use `$DB->get_last_error()` for debugging
196. **Performance**: Use `$DB->set_debug()` sparingly, prefer logging for production
207. **Table Prefix**: Never hardcode table names, use `$CFG->prefix` if needed
218. **Record Objects**: Return stdClass objects, not arrays for consistency
22 
23## Examples
24 
25```php
26<?php
27// File: ./includes/database_example.php
28 
29/**
30 * Example of proper database usage in Moodle
31 */
32function get_user_courses($userid) {
33 global $DB;
34
35 // Simple query with conditions
36 $courses = $DB->get_records('enrol', ['userid' => $userid], 'timecreated DESC');
37
38 // Complex query with parameters
39 $sql = "SELECT c.*, e.timecreated
40 FROM {course} c
41 JOIN {enrol} e ON c.id = e.courseid
42 WHERE e.userid = :userid
43 AND e.status = :status";
44
45 $params = [
46 'userid' => $userid,
47 'status' => ENROL_USER_ACTIVE
48 ];
49
50 $courses = $DB->get_records_sql($sql, $params);
51
52 // Transaction example
53 $transaction = $DB->start_delegated_transaction();
54 try {
55 $DB->insert_record('user_log', [
56 'userid' => $userid,
57 'action' => 'course_access',
58 'time' => time()
59 ]);
60
61 $DB->update_record('user', [
62 'id' => $userid,
63 'lastaccess' => time()
64 ]);
65
66 $transaction->allow_commit();
67 } catch (Exception $e) {
68 $transaction->rollback($e);
69 throw $e;
70 }
71
72 return $courses;
73}
74```
75 
76## Exceptions
77- Direct SQL may be needed for complex reporting queries
78- Third-party plugins may use different database patterns
79 

Sections

  • Moodle Database Patterns
  • Purpose
  • Instructions
  • Examples
  • Exceptions

What it covers

code-styledatabaseagent-behaviour

Stack — with the evidence

javascript

(1.00)

Glob targeting

  • [object Object]

Format

Cursor rules

The most expressive format here. Many small .mdc files, each with frontmatter declaring when it should load, so a rule about migrations only enters context when a migration is open. Costs the most to maintain and only one editor reads it.

What the corpus says about it

Repository

Owner
WisdmLabs
Language
—
License
—
Archived
no

All configs in this repo

Also in WisdmLabs/moodle-local_edwiserreports-free

Diff this repo’s formats

One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?

The other instruction files in this repository
RepositoryFormatStackCoversScoreChanged
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-ajax-and-js-integration.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-configuration-management.mdc · 4Cursor rulesjavascriptagent-behaviour36/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-error-handling.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-events-and-callbacks.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-file-and-media-handling.mdc · 4Cursor rulesjavascriptagent-behaviour36/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-internationalization.mdc · 4Cursor rulesjavascriptagent-behaviour36/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-performance-optimization.mdc · 4Cursor rulesjavascriptperformanceagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-php-coding-standards.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-plugin-structure.mdc · 4Cursor rulesjavascriptarchagent-behaviour54/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-scheduled-tasks.mdc · 4Cursor rulesjavascriptagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-security-practices.mdc · 4Cursor rulesjavascriptsecurityagent-behaviour50/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-testing-and-quality.mdc · 4Cursor rulesjavascripttesttesting-strategyagent-behaviour54/1003 days ago
WisdmLabs/moodle-local_edwiserreports-free.cursor/rules/moodle-web-services-and-api.mdc · 4Cursor rulesjavascriptapiagent-behaviour50/1003 days ago
Diff against .cursor/rules/moodle-ajax-and-js-integration.mdc Diff against .cursor/rules/moodle-configuration-management.mdc Diff against .cursor/rules/moodle-error-handling.mdc Diff against .cursor/rules/moodle-events-and-callbacks.mdc Diff against .cursor/rules/moodle-file-and-media-handling.mdc Diff against .cursor/rules/moodle-internationalization.mdc Diff against .cursor/rules/moodle-performance-optimization.mdc Diff against .cursor/rules/moodle-php-coding-standards.mdc Diff against .cursor/rules/moodle-plugin-structure.mdc Diff against .cursor/rules/moodle-scheduled-tasks.mdc Diff against .cursor/rules/moodle-security-practices.mdc Diff against .cursor/rules/moodle-testing-and-quality.mdc Diff against .cursor/rules/moodle-web-services-and-api.mdc

Similar configs

Same format, overlapping stack, ranked by quality.

Same format, overlapping stack, ranked by quality
RepositoryFormatStackCoversScoreChanged
hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126Cursor rulesgobun+5setupbuildtestlint-format+6100/1003 days ago
TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45Cursor rulestypescriptpytest+15testlint-formatstylearch+5100/1003 days ago
markstev/mark-starter.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+14setuptestlint-formatstyle+699/1003 days ago
Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+13setuptestlint-formatstyle+799/1003 days ago
deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1Cursor rulestypescriptnextjs+5setuptestlint-formatstyle+799/1003 days ago
dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+15setuptestlint-formatstyle+799/1003 days ago
langflow-ai/langflow.cursor/rules/docs_development.mdc · 153kCursor rulespythonnode+16setupbuildtestlint-format+797/1003 days ago
TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45Cursor rulestypescriptpytest+15teststyletesting-strategysecurity+397/1003 days ago
RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack