示例#1
0
 /**
  * Factory method for creating plugins
  * @param string|int                          $index
  * @param string|array|\Nimbles\Core\Plugin $plugin
  * @return \Nimbles\Core\Plugin|null
  */
 public static function factory($index, $plugin)
 {
     if (is_array($plugin)) {
         // treat as options
         $plugin = new Plugin($plugin);
     } else {
         if (!$plugin instanceof Plugin) {
             // empty plugin
             $plugin = new Plugin();
         }
     }
     $plugin->setName($index);
     // name name and index in sync
     return $plugin;
 }
示例#2
0
 /**
  * Tests attaching and detaching plugins
  * @return void
  */
 public function testAttachDetach()
 {
     $plugin = new Plugin(array('foo' => 'bar'), array('type' => 'string'));
     $this->assertEquals('bar', $plugin['foo']);
     $this->assertEquals('bar', $plugin->foo);
     $this->assertEquals(1, $plugin->count());
     $plugin->attach('baz', 'quz');
     $this->assertEquals('quz', $plugin['baz']);
     $this->assertEquals('quz', $plugin->baz);
     $this->assertEquals(2, $plugin->count());
     $plugin->detach('foo');
     $this->assertFalse($plugin->offsetExists('foo'));
     $this->assertEquals(1, $plugin->count());
 }