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

Enforce coding guidelines for requiring namespaces for any new PHP files

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Deferred
    • Icon: Minor Minor
    • None
    • 3.9
    • Local: Code checker
    • None
    • MOODLE_39_STABLE

      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.

            moodle.com Moodle HQ
            sarjona Sara Arjona (@sarjona)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.