/site/init.php
wire()->addHookAfter('Foo::hello', function ($event) {
$event->return .= ' - hooked :)';
});
/site/modules/WhatEver/Test.module.php
<?php
namespace ProcessWire;
use MyNamespace\Foo;
class Test extends WireData implements Module
{
public static function getModuleInfo()
{
return [
'title' => 'Test',
'version' => '0.0.1',
'summary' => 'Your module description',
'autoload' => true,
'singular' => true,
'icon' => 'smile-o',
'requires' => [],
'installs' => [],
];
}
public function init()
{
wire()->classLoader->addNamespace('MyNamespace', __DIR__ . '/classes');
}
public function ready()
{
$foo = new Foo();
bd($foo->hello());
}
}
/site/modules/WhatEver/classes/Foo.php
<?php
namespace MyNamespace;
use ProcessWire\Wire;
class Foo extends Wire
{
public function ___hello()
{
return "HELLO!";
}
}