Uploaded image for project: 'Plugins'
  1. Plugins
  2. CONTRIB-8128

Enforce coding guidelines for requiring namespaces for any new PHP files

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Deferred
    • Affects Version/s: 3.9
    • Fix Version/s: None
    • Component/s: Local: Code checker
    • Labels:
      None
    • Affected Branches:
      MOODLE_39_STABLE

      Description

      This is about to enforce the following policy decided recently (MDLSITE-6087). 

      Policy: Require formal namespaces for any new PHP files

      Since 19th June 2020, this rule applies:

      1. Formal namespaces are required for any new classes in Moodle. The following exceptions apply:
        1. there is no requirement to move existing non-namespaced classes to a namespace; and
        2. where an existing mechanism exists for loading a class, and that mechanism does not support the use of a namespaced class, the existing pseudo-namespaced prefix on the class name will be allowed.
      2. The use of a pseudo-namespace prefix on classnames is deprecated and should only be used in the above situations.
      3. The use of namespaces must conform to the following rules:
        1. Classes belonging to a namespace must be created in a classes directory inside a plugin (e.g. mod/forum/classes), or for core code, in lib/classes or subsystemdir/classes.
        2. The classname and filename for all namespaced classes must conform to the automatic class loading rules. The use of formal PHP namespaces in all new code is required.

       

      Valid examples:

      namespace mod_forum;
      class example {
      }
       
      namespace mod_forum\external;
      class example {
      }
       
      namespace core_user;
      class example {
      }

       

      No longer valid:

      class mod_forum_example {
      }
       
      class mod_forum_external_invalid {
      }
       
      class core_user_example {
      }

       

      This issue is about to verify these details in the codechecker. Nothing more, nothing less.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              moodle.com moodle.com
              Reporter:
              sarjona Sara Arjona (@sarjona)
              Participants:
              Component watchers:
              moodle.com, Eloy Lafuente (stronk7)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: