PHPMEF - PHP Managed Extensibility Framework
PHP
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
library/MEF
tests/MEF
.gitattributes
.gitignore
.travis.yml
LICENSE.md
README.md
composer.json
phpunit.xml.dist

README.md

PHPMEF - PHP Managed Extensibility Framework

PHPMEF is a PHP port of the .NET Managed Extensibility Framework, allowing easy composition and extensibility in an application using the Inversion of Control principle and 2 easy keywords: @export and @import.

Downloads

Latest download can be found under releases.

Hello, PHPMEF!

Here's a simple example on how PHPMEF can be used:


  class HelloWorld {
      /**
       * @import-many MessageToSay
       */
      public $Messages;
  
      public function sayIt() {
          echo implode(', ', $this->Messages);
      }
  }
  
  class Hello {
      /**
       * @export MessageToSay
       */
      public $HelloMessage = 'Hello';
  }
  
  class World {
      /**
       * @export MessageToSay
       */
      public $WorldMessage = 'World!';
  }
  
  $helloWorld = new HelloWorld();
  
  $compositionInitializer = new MEF_CompositionInitializer(new MEF_Container_Default());
  $compositionInitializer->satisfyImports($helloWorld);
  
  $helloWorld->sayIt(); // Hello, World!

Check the wiki for more information.