Fix bugs and include Composer autoloader to example.php

This commit is contained in:
victor
2015-07-21 10:57:01 +03:00
parent 1b068456c1
commit f5c075f02d
6 changed files with 40 additions and 16 deletions

View File

@@ -5,10 +5,10 @@ namespace DesignPatterns\More\EAV;
/** /**
* Class Attribute * Class Attribute
*/ */
class Attribute implements ValueInterface class Attribute implements ValueAccessInterface
{ {
/** /**
* @var Value[]|ValueInterface[]|array * @var array|Value[]|ValueInterface[]
*/ */
private $values = []; private $values = [];
@@ -18,7 +18,7 @@ class Attribute implements ValueInterface
private $name; private $name;
/** /**
* @return Value[]|ValueInterface[]|array * @return array|Value[]|ValueInterface[]
*/ */
public function getValues() public function getValues()
{ {

View File

@@ -5,10 +5,10 @@ namespace DesignPatterns\More\EAV;
/** /**
* Class Entity * Class Entity
*/ */
class Entity implements ValueInterface class Entity implements ValueAccessInterface
{ {
/** /**
* @var Value[]|ValueInterface[]|array * @var array|Value[]|ValueInterface[]
*/ */
private $values = []; private $values = [];
@@ -18,7 +18,7 @@ class Entity implements ValueInterface
private $name; private $name;
/** /**
* @return Value[]|ValueInterface[]|array * @return array|Value[]|ValueInterface[]
*/ */
public function getValues() public function getValues()
{ {

View File

@@ -5,7 +5,7 @@ namespace DesignPatterns\More\EAV;
/** /**
* Class Value * Class Value
*/ */
class Value class Value implements ValueInterface
{ {
/** /**
* @var Attribute * @var Attribute
@@ -17,6 +17,9 @@ class Value
*/ */
private $name; private $name;
/**
* @param Attribute $attribute
*/
public function __construct(Attribute $attribute) public function __construct(Attribute $attribute)
{ {
$attribute->addValue($this); $attribute->addValue($this);

View File

@@ -0,0 +1,24 @@
<?php
namespace DesignPatterns\More\EAV;
/**
* Interface ValueAccessInterface
*/
interface ValueAccessInterface
{
/**
* @return Value[]|ValueInterface[]|array
*/
public function getValues();
/**
* @param Value|ValueInterface $value
*/
public function addValue(ValueInterface $value);
/**
* @param Value|ValueInterface $value
*/
public function removeValue(ValueInterface $value);
}

View File

@@ -8,17 +8,12 @@ namespace DesignPatterns\More\EAV;
interface ValueInterface interface ValueInterface
{ {
/** /**
* @return Value[]|ValueInterface[]|array * @param Attribute $attribute
*/ */
public function getValues(); public function __construct(Attribute $attribute);
/** /**
* @param Value|ValueInterface $value * @return Attribute
*/ */
public function addValue(ValueInterface $value); public function getAttribute();
/**
* @param Value|ValueInterface $value
*/
public function removeValue(ValueInterface $value);
} }

View File

@@ -1,5 +1,7 @@
<?php <?php
require '../../vendor/autoload.php';
use DesignPatterns\More\EAV\Entity; use DesignPatterns\More\EAV\Entity;
use DesignPatterns\More\EAV\Attribute; use DesignPatterns\More\EAV\Attribute;
use DesignPatterns\More\EAV\Value; use DesignPatterns\More\EAV\Value;