[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/ocramius/proxy-manager/examples/ -> access-interceptor-scope-localizer.php (source)

   1  <?php
   2  /**
   3   * This example demonstrates how an access interceptor scope localizer
   4   * (which is a specific type of smart reference) is safe to use to
   5   * proxy fluent interfaces.
   6   */
   7  
   8  require_once  __DIR__ . '/../vendor/autoload.php';
   9  
  10  use ProxyManager\Factory\AccessInterceptorScopeLocalizerFactory;
  11  
  12  class FluentCounter
  13  {
  14      public $counter = 0;
  15  
  16      /** @return FluentCounter */
  17      public function fluentMethod()
  18      {
  19          $this->counter += 1;
  20  
  21          return $this;
  22      }
  23  }
  24  
  25  $factory = new AccessInterceptorScopeLocalizerFactory();
  26  $foo = new FluentCounter();
  27  
  28  /* @var $proxy FluentCounter */
  29  $proxy = $factory->createProxy(
  30      $foo,
  31      array('fluentMethod' => function ($proxy) { echo "pre-fluentMethod #{$proxy->counter}!\n"; }),
  32      array('fluentMethod' => function ($proxy) { echo "post-fluentMethod #{$proxy->counter}!\n"; })
  33  );
  34  
  35  $proxy->fluentMethod()->fluentMethod()->fluentMethod()->fluentMethod();
  36  
  37  echo 'The proxy counter is now at ' . $proxy->counter . "\n";
  38  echo 'The real instance counter is now at ' . $foo->counter . "\n";


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1