Skip to content
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.

Commit

Permalink
Merge branch 'master' into acceptHandling
Browse files Browse the repository at this point in the history
Conflicts:
	library/Zend/Http/Header/AbstractAccept.php
	library/Zend/Http/Header/AcceptEncoding.php
	library/Zend/Http/Header/AcceptLanguage.php
	tests/Zend/Http/Header/AcceptCharsetTest.php
	tests/Zend/Http/Header/AcceptEncodingTest.php
	tests/Zend/Http/Header/AcceptLanguageTest.php
	tests/Zend/Http/Header/AcceptTest.php
  • Loading branch information
Freeaqingme committed Jul 14, 2012
6 parents 7c41732 + 7465e5d + 1b64e7d + 1f50979 + 92b6722 + 1d54f79 commit ab5cea3
Show file tree
Hide file tree
Showing 53 changed files with 934 additions and 496 deletions.
43 changes: 31 additions & 12 deletions src/Configuration.php
Expand Up @@ -12,18 +12,26 @@

use Traversable;
use Zend\Stdlib\ArrayUtils;
use Zend\Di\Definition\ArrayDefinition;
use Zend\Di\Definition\RuntimeDefinition;

/**
* Configures Di instances
*
* @category Zend
* @package Zend_Di
*/
class Configuration
{
/**
* @var array
*/
protected $data = array();

/**
* Constructor
*
* @param array|Traversable $options
* @param array|Traversable $options
* @throws Exception\InvalidArgumentException
*/
public function __construct($options)
Expand All @@ -43,7 +51,7 @@ public function __construct($options)
/**
* Configure
*
* @param Di $di
* @param Di $di
* @return void
*/
public function configure(Di $di)
Expand All @@ -55,17 +63,21 @@ public function configure(Di $di)
if (isset($this->data['instance'])) {
$this->configureInstance($di, $this->data['instance']);
}

}

/**
* @param Di $di
* @param array $definition
*/
public function configureDefinition(Di $di, $definition)
{
foreach ($definition as $definitionType => $definitionData) {
switch ($definitionType) {
case 'compiler':
foreach ($definitionData as $filename) {
if (is_readable($filename)) {
$di->definitions()->addDefinition(new \Zend\Di\Definition\ArrayDefinition(include $filename), false);
$di->definitions()->addDefinition(new ArrayDefinition(include $filename), false);
}
}
break;
Expand All @@ -74,16 +86,18 @@ public function configureDefinition(Di $di, $definition)
// Remove runtime from definition list if not enabled
$definitions = array();
foreach ($di->definitions() as $definition) {
if (!$definition instanceof \Zend\Di\Definition\RuntimeDefinition) {
if (!$definition instanceof RuntimeDefinition) {
$definitions[] = $definition;
}
}
$definitions = new DefinitionList($definitions);
$di->setDefinitionList($definitions);
} elseif (isset($definitionData['use_annotations']) && $definitionData['use_annotations']) {
$di->definitions()->getDefinitionByType('\Zend\Di\Definition\RuntimeDefinition')
->getIntrospectionStrategy()
->setUseAnnotations(true);
/* @var $runtimeDefinition Definition\RuntimeDefinition */
$runtimeDefinition = $di
->definitions()
->getDefinitionByType('\Zend\Di\Definition\RuntimeDefinition');
$runtimeDefinition->getIntrospectionStrategy()->setUseAnnotations(true);
}
break;
case 'class':
Expand Down Expand Up @@ -136,11 +150,17 @@ public function configureDefinition(Di $di, $definition)
}

}


/**
* Configures a given Di instance
*
* @param Di $di
* @param $instanceData
*/
public function configureInstance(Di $di, $instanceData)
{
$im = $di->instanceManager();

foreach ($instanceData as $target => $data) {
switch (strtolower($target)) {
case 'aliases':
Expand Down Expand Up @@ -183,5 +203,4 @@ public function configureInstance(Di $di, $instanceData)

}


}
13 changes: 12 additions & 1 deletion src/Definition/Annotation/Inject.php
Expand Up @@ -12,11 +12,22 @@

use Zend\Code\Annotation\AnnotationInterface;

/**
* Annotation for injection endpoints for dependencies
*
* @category Zend
* @package Zend_Di
*/
class Inject implements AnnotationInterface
{

/**
* @var mixed
*/
protected $content = null;

/**
* {@inheritDoc}
*/
public function initialize($content)
{
$this->content = $content;
Expand Down
13 changes: 12 additions & 1 deletion src/Definition/Annotation/Instantiator.php
Expand Up @@ -12,11 +12,22 @@

use Zend\Code\Annotation\AnnotationInterface;

/**
* Annotation for instantiator
*
* @category Zend
* @package Zend_Di
*/
class Instantiator implements AnnotationInterface
{

/**
* @var mixed
*/
protected $content = null;

/**
* {@inheritDoc}
*/
public function initialize($content)
{
$this->content = $content;
Expand Down
90 changes: 63 additions & 27 deletions src/Definition/ArrayDefinition.php
Expand Up @@ -10,122 +10,158 @@

namespace Zend\Di\Definition;

/**
* Class definitions based on a given array
*
* @category Zend
* @package Zend_Di
*/
class ArrayDefinition implements DefinitionInterface
{

/**
* @var array
*/
protected $dataArray = array();

public function __construct(Array $dataArray)

/**
* @param array $dataArray
*/
public function __construct(array $dataArray)
{
foreach ($dataArray as $class => $value) {
// force lower names
$dataArray[$class] = array_change_key_case($dataArray[$class], CASE_LOWER);
}
$this->dataArray = $dataArray;
}


/**
* {@inheritDoc}
*/
public function getClasses()
{
return array_keys($this->dataArray);
}


/**
* {@inheritDoc}
*/
public function hasClass($class)
{
return array_key_exists($class, $this->dataArray);
}


/**
* {@inheritDoc}
*/
public function getClassSupertypes($class)
{
if (!isset($this->dataArray[$class])) {
return array();
}

if (!isset($this->dataArray[$class]['supertypes'])) {
return array();
}

return $this->dataArray[$class]['supertypes'];
}


/**
* {@inheritDoc}
*/
public function getInstantiator($class)
{
if (!isset($this->dataArray[$class])) {
return null;
}

if (!isset($this->dataArray[$class]['instantiator'])) {
return '__construct';
}

return $this->dataArray[$class]['instantiator'];
}


/**
* {@inheritDoc}
*/
public function hasMethods($class)
{
if (!isset($this->dataArray[$class])) {
return array();
}

if (!isset($this->dataArray[$class]['methods'])) {
return array();
}

return (count($this->dataArray[$class]['methods']) > 0);
}


/**
* {@inheritDoc}
*/
public function hasMethod($class, $method)
{
if (!isset($this->dataArray[$class])) {
return false;
}

if (!isset($this->dataArray[$class]['methods'])) {
return false;
}

return array_key_exists($method, $this->dataArray[$class]['methods']);
}


/**
* {@inheritDoc}
*/
public function getMethods($class)
{
if (!isset($this->dataArray[$class])) {
return array();
}

if (!isset($this->dataArray[$class]['methods'])) {
return array();
}

return $this->dataArray[$class]['methods'];
}

/**
* @param $class
* @param $method
* @return bool
* {@inheritDoc}
*/
public function hasMethodParameters($class, $method)
{
return isset($this->dataArray[$class]['parameters'][$method]);
}

/**
* {@inheritDoc}
*/
public function getMethodParameters($class, $method)
{
if (!isset($this->dataArray[$class])) {
return array();
}

if (!isset($this->dataArray[$class]['parameters'])) {
return array();
}

if (!isset($this->dataArray[$class]['parameters'][$method])) {
return array();
}

return $this->dataArray[$class]['parameters'][$method];
}


/**
* @return array
*/
public function toArray()
{
return $this->dataArray;
Expand Down

0 comments on commit ab5cea3

Please sign in to comment.