您的位置:首页 > 编程语言 > PHP开发

每天laravel-20160818| Container -21

2016-05-31 09:21 513 查看
/**
* Fire all of the resolving callbacks.
*
* @param  string  $abstract
* @param  mixed   $object
* @return void
*/
// Fire all of the resolving callbacks.
protected function fireResolvingCallbacks($abstract, $object)
{// fire Resolving Callbacks
$this->fireCallbackArray($object, $this->globalResolvingCallbacks);
// fireCallbackArray is a function,
// two parameters
$this->fireCallbackArray(
$object, $this->getCallbacksForType(
$abstract, $object, $this->resolvingCallbacks
)
);// set the fire Call back Array

$this->fireCallbackArray($object, $this->globalAfterResolvingCallbacks);
// fire two
$this->fireCallbackArray(
$object, $this->getCallbacksForType(
$abstract, $object, $this->afterResolvingCallbacks
)
);// fire third
}// this is a fire function to make it

/**
* Get all callbacks for a given type.
*
* @param  string  $abstract
* @param  object  $object
* @param  array   $callbacksPerType
*
* @return array
*/
// Get all callbacks for a given type.
protected function getCallbacksForType($abstract, $object, array $callbacksPerType)
{// this is abstract parameters
// object
// array call backs Per Type
$results = [];// has a array store

foreach ($callbacksPerType as $type => $callbacks) {// loop the result
if ($type === $abstract || $object instanceof $type) {
$results = array_merge($results, $callbacks);// combine the  array
}
}

return $results;
}

/**
* Fire an array of callbacks with an object.
*
* @param  mixed  $object
* @param  array  $callbacks
* @return void
*/
protected function fireCallbackArray($object, array $callbacks)
{
foreach ($callbacks as $callback) {
$callback($object, $this);
}
}// fire an array callbacks with an object.

/**
* Determine if a given type is shared.
*
* @param  string  $abstract
* @return bool
*/
public function isShared($abstract)// check shared status
{
$abstract = $this->normalize($abstract);// first get a normal string that i need

if (isset($this->instances[$abstract])) {
return true;
}// if it is done, ok return it

if (! isset($this->bindings[$abstract]['shared'])) {
return false;
}// if it can't be bound it

return $this->bindings[$abstract]['shared'] === true;
// if set ,get the result about shared
}

/**
* Determine if the given concrete is buildable.
*
* @param  mixed   $concrete
* @param  string  $abstract
* @return bool
*/
protected function isBuildable($concrete, $abstract)
{
return $concrete === $abstract || $concrete instanceof Closure;
}// Determine if the given concrete is buildable.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: