Exemplo n.º 1
0
 public function auto()
 {
     $return = $this;
     $this->loadPropertyTypes();
     $properties = AutoBuild::getDefaultParameters($this->className);
     // Set the default values
     if (!empty($properties)) {
         foreach ($properties as $propName => $value) {
             $return = $this->with($value, is_numeric($propName) ? null : $propName);
         }
     }
     // Build consequent dependancies that are already registered
     if (!empty($this->propertyTypes)) {
         foreach ($this->propertyTypes as $name => $class) {
             if (!empty($this->params[$name])) {
                 continue;
             }
             $object = AutoBuild::getInstance($class);
             if (!empty($object)) {
                 $return = $this->with($object, $name);
             }
         }
     }
     return $return;
 }
Exemplo n.º 2
0
    public function getHost()
    {
        return $this->host;
    }
}
class Model
{
    use \FW\DI\DI;
    protected $connection = DBConnection::class;
    protected $table;
    public function __construct($connection)
    {
    }
    public function getHost()
    {
        return $this->connection->getHost();
    }
}
class Model_Post extends Model
{
    protected $table = 'table';
}
\FW\DI\AutoBuild::register(Dependancy::class, []);
\FW\DI\AutoBuild::register(DBConnection::class, ['host' => 'localhost']);
// $dependancy will be autoloaded since it's registered already
try {
    $post = Model_Post::build()->auto();
    var_dump($post->getHost());
} catch (Exception $e) {
    var_dump($e->getMessage());
}
Exemplo n.º 3
0
    public function getHost()
    {
        return $this->host;
    }
}
class Model
{
    use \FW\DI\DI;
    protected $connection = DBConnection::class;
    protected $table;
    public function __construct($connection)
    {
    }
    public function getHost()
    {
        return $this->connection->getHost();
    }
}
class Model_Post extends Model
{
    protected $table = 'table';
}
\FW\DI\AutoBuild::register(DBConnection::class, function () {
    return ['host' => 'localhost'];
});
try {
    $post = Model_Post::build()->auto();
    var_dump($post->getHost());
} catch (Exception $e) {
    var_dump($e->getMessage());
}