Exemplo n.º 1
0
    }
    public function of($target)
    {
        return HermitDaoManager::get($target);
    }
}
class Foo
{
    public function get()
    {
        return HermitDaoManager::get(__CLASS__);
    }
}
class Bar
{
    public function get()
    {
        return HermitDaoManager::get(__CLASS__);
    }
}
$hoge = new Hoge();
$foo = new Foo();
$bar = new Bar();
$test->is($hoge->get(), 'A01Dao');
$test->is($hoge->of('Foo'), 'A02Dao');
$test->is($foo->get(), 'A02Dao');
$test->is($bar->get(), null);
$test->is(HermitDaoManager::has('Hoge'), true);
$test->is(HermitDaoManager::has('Foo'), true);
$test->is(HermitDaoManager::has('A01Dao'), false);
$test->is(HermitDaoManager::has('A02Dao'), false);
Exemplo n.º 2
0
	public function testUnset()
	{
		$foo = Foo::get('foo3');
		$this->assertEquals(2, count($foo->bars));
		$this->assertEquals('Bar 1', $foo->bars[0]->barbar);
		$this->assertEquals('Bar 2', $foo->bars[1]->barbar);
		
		unset($foo->bars[0]);
		
		$foo = Foo::get('foo3');
		$bar = Bar::get('bar 1');
		$this->assertEquals(1, count($foo->bars));
		$this->assertEquals('Bar 2', $foo->bars[0]->barbar);
		
		$this->assertEquals(1, count($bar->foos));
		$this->assertEquals('Foo 2', $bar->foos[0]->foofoo);
	}
var_dump($person3);
class Foo
{
    protected static $prop = 'Foo';
    public static function get()
    {
        echo static::$prop;
        //        Если бы тут был self то наследуемый класс тоже давал бы Foo
    }
}
class Bar extends Foo
{
    protected static $prop = 'Bar';
}
Foo::get();
Bar::get();
class Team
{
    protected $developers = [];
    //    Всегда лучше всё закрывать, то есть лучше использовать protected
    //    Сначала всё закрывать, потом открывать
    public function addDeveloper(Developer $developer)
    {
        array_push($this->developers, $developer);
    }
}
$team = new Team();
//$team->addDeveloper($person);
$team->addDeveloper($person3);
//$team->addDeveloper(666);
var_dump($team);
Exemplo n.º 4
0
	public function testBatchSave()
	{
		$foo = new Foo;
		$foo->ID = 'SomeFoo';
		// No foofoo -> invalid
		
		$bar = new Bar;
		$bar->ID = 'Somebar';
		$bar->barbar = '...';
		$bar->foo = $foo;
		
		try
		{
			DBModel::batchSave(array($foo, $bar));
			$this->fail('Expected exception');
		}
		catch (ValidationException $e)
		{
			$bar2 = Bar::get('Somebar');
			$foo2 = Foo::get('SomeFoo');
			$this->assertNull($bar2);
			$this->assertNull($foo2);
			
			$this->assertEquals('FooFoo is required', $foo->foofoo_error);
		}
	}
Exemplo n.º 5
0
<?php

require "tests.php";
require "director_unroll.php";
// No new functions
check::functions(array(foo_ping, foo_pong));
// No new classes
check::classes(array(Foo, Bar));
// now new vars
check::globals(array(bar));
class MyFoo extends Foo
{
    function ping()
    {
        return "MyFoo::ping()";
    }
}
$a = new MyFoo();
$b = new Bar();
$b->set($a);
$c = $b->get();
check::equal($a->this, $c->this, "this failed");
check::done();
Exemplo n.º 6
0
<?php

use js\tools\commons\traits\DataWriter;
use js\tools\commons\traits\StaticDataWriter;
require __DIR__ . '/../autoloader.php';
class Foo
{
    use DataWriter;
}
class Bar
{
    use StaticDataWriter;
}
$foo = new Foo();
$foo->set('a.b.c', 'foo');
var_dump($foo->getArray('a.b'));
var_dump($foo->get('a.b.c'));
Bar::set('a.b.c', 'bar');
var_dump(Bar::getArray('a.b'));
var_dump(Bar::get('a.b.c'));
Exemplo n.º 7
0
<?php

class Foo
{
    static function call()
    {
        return 'fail';
    }
    static function test()
    {
        return static::call();
    }
    static function get()
    {
        return new static();
    }
}
class Bar extends Foo
{
    static function call()
    {
        return 'success';
    }
}
$bar = Bar::get();
if (!$bar instanceof Bar) {
    return 'fail_get';
}
return Bar::test();