Documentation

mixin.php

Scan for files which implement common Civi-PHP interfaces.

Specifically, this listens to hook_scanClasses and reports any classes with Civi-related interfaces (eg CRM_Foo_BarInterface or Civi\Foo\BarInterface). For example:

  • \Civi\Core\HookInterface
  • \Civi\Test\ExampleDataInterface
  • \Civi\WorkflowMessage\WorkflowMessageInterface

If you are adding this to an existing extension, take care that you meet these assumptions:

  • Classes live in 'CRM_' ('./CRM/.php') or 'Civi' ('./Civi/.php').
  • Class files only begin with uppercase letters.
  • Class files only contain alphanumerics.
  • Class files never have multiple dots in the name. ("CRM/Foo.php" is a class; "CRM/Foo.bar.php" is not).
  • The ONLY files which match these patterns are STRICTLY class files.
  • The ONLY classes which match these patterns are SAFE/INTENDED for use with hook_scanClasses.
  • Test directories are not scanned in version 1.1+. See https://github.com/civicrm/civicrm-core/pull/26157

To minimize unintended activations, this only loads Civi interfaces. It skips other interfaces.

Tags
mixinName

scan-classes

mixinVersion

1.1.0

since
5.52

Table of Contents


        
On this page
  • Table Of Contents

Search results