Skip to content

MDLSITE-8442: Use PSR-12 rules for braces - #1657

Draft
dpalou wants to merge 3 commits into
moodle:mainfrom
dpalou:MDLSITE-8442
Draft

MDLSITE-8442: Use PSR-12 rules for braces#1657
dpalou wants to merge 3 commits into
moodle:mainfrom
dpalou:MDLSITE-8442

Conversation

@dpalou

@dpaloudpalou commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

This PR removes our custom rules that override PSR-12 rules. Now braces coding style should align with PSR-12 rules.

dpalou added 2 commits July 27, 2026 12:54
This change removes the bracing coding style rule to align with the PSR-12 coding style.
@dpalou
dpalou requested a review from a team as a code ownerJuly 27, 2026 12:54
CopilotAI review requested due to automatic review settings July 27, 2026 12:54
@netlify

netlifyBot commented Jul 27, 2026

Copy link
Copy Markdown

Deploy Preview for moodledevdocs ready!

Built without sensitive environment variables

NameLink
🔨 Latest commit318b7c0
🔍 Latest deploy loghttps://app.netlify.com/projects/moodledevdocs/deploys/6a6763079992ab0008d0ac71
😎 Deploy Previewhttps://deploy-preview-1657--moodledevdocs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changesRun an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@dpaloudpalou changed the title MDLSITE-8442: Use PSR-1.2 rules for bracesMDLSITE-8442: Use PSR-12 rules for bracesJul 27, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the DevDocs PHP code examples (and related coding-style documentation) to align brace placement with PSR-12-style declarations (moving opening braces for class/function/method declarations onto the next line), while keeping control-structure braces on the same line.

Changes:

  • Reformat PHP declaration examples across guides and API docs to use “brace on next line” for classes/functions/methods.
  • Adjust wording in the coding style policy docs to clarify brace placement expectations (notably distinguishing control structures from declarations).
  • Apply the same brace formatting to examples in general development tooling docs and Moodle App plugin development guides.

Reviewed changes

Copilot reviewed 78 out of 78 changed files in this pull request and generated 6 comments.

Show a summary per file
FileDescription
general/development/tools/xmldb.mdUpdate upgrade-function example brace placement.
general/development/tools/phpunit/upgrading-11.mdUpdate PHPUnit example method brace placement.
general/development/tools/phpunit/index.mdUpdate example test class brace placement.
general/development/tools/behat/writing.mdUpdate Behat-related example classes/methods brace placement.
general/development/policies/deprecation/index.mdUpdate deprecation attribute examples brace placement.
general/development/policies/deprecation/icon-deprecation.mdUpdate icon deprecation examples brace placement.
general/development/policies/codingstyle/index.mdAlign brace guidance/examples with PSR-style declarations and control structures.
general/app/development/plugins-development-guide/index.mdUpdate Moodle App plugin guide PHP examples brace placement.
general/app/development/plugins-development-guide/examples/question-types.mdUpdate question-type example class/method brace placement.
general/app/development/plugins-development-guide/examples/forms.mdUpdate forms examples brace placement (including external_api examples).
general/app/development/plugins-development-guide/examples/course-modules.mdUpdate course-module examples brace placement.
general/app/development/plugins-development-guide/examples/course-formats.mdUpdate course-format examples brace placement.
docs/guides/upgrade/index.mdUpdate upgrade/install callback examples brace placement.
docs/guides/testing/index.mdUpdate PHPUnit test examples brace placement.
docs/guides/templates/index.mdUpdate templating/rendering method examples brace placement.
docs/apis/subsystems/task/scheduled.mdUpdate scheduled task example class/method brace placement.
docs/apis/subsystems/task/index.mdUpdate task example class/method brace placement.
docs/apis/subsystems/task/adhoc.mdUpdate adhoc task examples brace placement.
docs/apis/subsystems/tag/index.mdUpdate tagging callbacks/examples brace placement.
docs/apis/subsystems/routing/testing.mdUpdate routing test examples brace placement.
docs/apis/subsystems/routing/shortlinks.mdUpdate shortlink handler example brace placement.
docs/apis/subsystems/routing/responses.mdUpdate routing response example class brace placement.
docs/apis/subsystems/routing/parameters.mdUpdate routing parameter examples brace placement.
docs/apis/subsystems/routing/index.mdUpdate routing index example class brace placement.
docs/apis/subsystems/privacy/utils.mdUpdate privacy utility function example brace placement.
docs/apis/subsystems/privacy/index.mdUpdate privacy provider examples brace placement.
docs/apis/subsystems/output/inplace.mdUpdate inplace editable examples brace placement.
docs/apis/subsystems/output/index.mdUpdate Output API examples brace placement across multiple snippets.
docs/apis/subsystems/form/usage/index.mdUpdate form usage examples brace placement.
docs/apis/subsystems/form/index.mdUpdate form API examples brace placement.
docs/apis/subsystems/form/advanced/checkbox-controller.mdUpdate checkbox controller example brace placement.
docs/apis/subsystems/files/browsing.mdUpdate file browsing API example brace placement.
docs/apis/subsystems/external/writing-a-service.mdUpdate external service examples brace placement.
docs/apis/subsystems/external/testing.mdUpdate external service testing examples brace placement.
docs/apis/subsystems/external/security.mdUpdate external service security examples brace placement.
docs/apis/subsystems/external/functions.mdUpdate external functions examples brace placement.
docs/apis/subsystems/external/files.mdUpdate external files return-structure example brace placement.
docs/apis/subsystems/communication/index.mdUpdate communication subsystem form example brace placement.
docs/apis/subsystems/check/index.mdUpdate check subsystem examples brace placement.
docs/apis/subsystems/backup/restore.mdUpdate restore plugin example brace placement.
docs/apis/subsystems/backup/index.mdUpdate backup plugin example brace placement.
docs/apis/subsystems/analytics/index.mdUpdate analytics callback examples brace placement.
docs/apis/subsystems/ai/index.mdUpdate AI subsystem examples brace placement.
docs/apis/subsystems/access.mdUpdate access API example brace placement.
docs/apis/plugintypes/tiny/index.mdUpdate Tiny plugininfo example brace placement.
docs/apis/plugintypes/theme/index.mdUpdate theme SCSS callback example brace placement.
docs/apis/plugintypes/sms/index.mdUpdate SMS gateway examples brace placement.
docs/apis/plugintypes/repository/index.mdUpdate repository API examples brace placement.
docs/apis/plugintypes/qtype/restore.mdUpdate qtype restore examples brace placement.
docs/apis/plugintypes/qtype/newquestiondefaults.mdUpdate qtype defaults example brace placement.
docs/apis/plugintypes/qbank/filters.mdUpdate qbank filter examples brace placement.
docs/apis/plugintypes/mod/visibility.mdUpdate module visibility callback examples brace placement.
docs/apis/plugintypes/mod/courseoverview.mdUpdate course overview examples brace placement.
docs/apis/plugintypes/mod/_files/lib_description.mdUpdate module lib.php callback examples brace placement.
docs/apis/plugintypes/format/linear_navigation.mdUpdate course format example brace placement.
docs/apis/plugintypes/format/index.mdUpdate course format output-class examples brace placement.
docs/apis/plugintypes/filter/index.mdUpdate filter plugin examples brace placement.
docs/apis/plugintypes/fileconverter/index.mdUpdate file converter examples brace placement.
docs/apis/plugintypes/enrol/index.mdUpdate enrol plugin examples brace placement.
docs/apis/plugintypes/blocks/index.mdUpdate blocks plugin examples brace placement.
docs/apis/plugintypes/availability/index.mdUpdate availability plugin examples brace placement.
docs/apis/plugintypes/assign/submission.mdUpdate assign submission plugin examples brace placement.
docs/apis/plugintypes/assign/feedback.mdUpdate assign feedback plugin examples brace placement.
docs/apis/plugintypes/ai/provider.mdUpdate AI provider examples brace placement.
docs/apis/plugintypes/ai/placement.mdUpdate AI placement examples brace placement.
docs/apis/core/reportbuilder/index.mdUpdate reportbuilder examples brace placement.
docs/apis/core/navigation/index.mdUpdate navigation callback example brace placement.
docs/apis/core/hooks/index.mdUpdate hooks examples brace placement.
docs/apis/core/grading/index.mdUpdate grading callback example brace placement.
docs/apis/core/dml/index.mdUpdate DML example function brace placement.
docs/apis/core/dml/ddl.mdUpdate DDL example brace placement.
docs/apis/core/di/index.mdUpdate DI examples brace placement.
docs/apis/core/deprecation/index.mdUpdate deprecation examples brace placement.
docs/apis/core/customfields/index.mdUpdate customfields example brace placement.
docs/apis/core/comment/index.mdUpdate comment API callback example brace placement.
docs/apis/core/clock/index.mdUpdate clock API examples brace placement.
docs/apis/core/calendar/index.mdUpdate calendar callback examples brace placement.
docs/apis/core/activitycompletion/index.mdUpdate activity completion examples brace placement.
Comments suppressed due to low confidence (2)

docs/apis/plugintypes/format/index.md:556

  • This example return statement is missing the closing quote and semicolon, so the PHP sample is invalid.
 public function get_template_name(\renderer_base $renderer): string
{
return 'format_pluginname/local/content/cm/activity;

docs/apis/plugintypes/format/index.md:569

  • This example return statement is missing the closing quote and semicolon, so the PHP sample is invalid.
 public function get_template_name(\renderer_base $renderer): string
{
return 'format_pluginname/local/content/cm/badge;

Comment threaddocs/apis/core/dml/ddl.md
Comment threaddocs/apis/plugintypes/assign/submission.md
Comment threaddocs/apis/plugintypes/qbank/filters.md
Comment threaddocs/apis/plugintypes/format/index.md
Comment threaddocs/apis/plugintypes/format/index.md
Comment threaddocs/guides/testing/index.md
…nge to all versions
Backports the fix from PR moodle#1657 to 4.5, 5.0, 5.1, and 5.2.
@dpalou
dpalou marked this pull request as draft August 12, 2026 13:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@dpalou