silverstripe-framework/tests/php/Core/Injector/AopProxyServiceTest.php

42 lines
826 B
PHP
Raw Normal View History

<?php
use SilverStripe\Core\Injector\AopProxyService;
use SilverStripe\Core\Injector\BeforeCallAspect;
use SilverStripe\Core\Injector\AfterCallAspect;
use SilverStripe\Dev\SapphireTest;
class ProxyTestObject {
public function myMethod() {
return 42;
}
}
class BeforeAfterCallTestAspect implements BeforeCallAspect, AfterCallAspect {
public $block = false;
2014-08-15 08:53:05 +02:00
public $called;
2014-08-15 08:53:05 +02:00
public $alternateReturn;
2014-08-15 08:53:05 +02:00
public $modifier;
public function beforeCall($proxied, $method, $args, &$alternateReturn) {
$this->called = $method;
2014-08-15 08:53:05 +02:00
if ($this->block) {
if ($this->alternateReturn) {
$alternateReturn = $this->alternateReturn;
}
return false;
}
}
public function afterCall($proxied, $method, $args, $result) {
if ($this->modifier) {
$modifier = $this->modifier;
return $modifier($result);
}
}
2014-08-15 08:53:05 +02:00
}