Added DependencyInjection UML

This commit is contained in:
John Webb
2014-07-29 10:58:40 -05:00
parent 3a7e38f91d
commit aef2f34993
16 changed files with 59 additions and 27 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -4,12 +4,12 @@ class Assemble {
}
class Car {
+__construct()
+__construct(Workshop $workShop1, Workshop $workShop2)
+manufacture()
}
class Motorcycle {
+__construct()
+__construct(Workshop $workShop1, Workshop $workShop2)
+manufacture()
}
@@ -18,9 +18,9 @@ class Produce {
}
abstract class Vehicle {
protected workShop1
protected workShop2
+__construct()
#workShop1
#workShop2
#__construct()
+manufacture()
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@@ -1,20 +1,20 @@
@startuml
class Form {
protected elements
+render($indent = 0)
#elements : array|FormElement[]
+render($indent = 0 : int)
+addElement(FormElement $element)
}
abstract class FormElement {
+render($indent = 0)
+render($indent = 0 : int)
}
class InputElement {
+render($indent = 0)
+render($indent = 0 : int)
}
class TextElement {
+render($indent = 0)
+render($indent = 0 : int)
}
FormElement <|.. TextElement

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -1,25 +1,24 @@
@startuml
class User {
protected $userId
protected $username
protected $email
+__construct($id = null, $username = null, $email = null)
#$userId : int
#$username : string
#$email : string
+__construct($id = null : int, $username = null : string, $email = null : string)
+getUserId()
+setUserID($userId)
+setUserID($userId : int)
+getUsername()
+setUsername($username)
+setUsername($username : string)
+getEmail()
+setEmail($email)
+setEmail($email : string)
}
class UserMapper {
# $user : User
protected $adapter
#$adapter : DBAL
+__construct(DBAL $dbLayer)
+save(User $user)
+findById($id)
+findById($id : int)
+findAll()
+mapObject(array $row)
#mapObject(array $row)
}
@enduml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -4,7 +4,7 @@ interface RendererInterface {
}
abstract class Decorator {
# protected $wrapped : RendererInterface
#$wrapped : RendererInterface
+__construct(RendererInterface $wrappable)
}
@@ -17,7 +17,7 @@ class RenderInXml {
}
class Webservice {
protected $data
#$data : mixed
+__construct($data)
+renderData()
}

View File

@@ -14,3 +14,7 @@ Notice we are following Inversion of control principle in `Connection` by asking
* The Doctrine2 ORM uses dependency injection e.g. for configuration that is injected into a `Connection` object. For testing purposes, one can easily create a mock object of the configuration and inject that into the `Connection` object
* Symfony and Zend Framework 2 already have containers for DI that create objects via a configuration array and inject them where needed (i.e. in Controllers)
## UML Diagram
![Alt DependencyInjection UML Diagram](uml/uml.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -0,0 +1,28 @@
@startuml
abstract class AbstractConfig {
#$storage
+__construct($storage)
}
class ArrayConfig {
+get($key : string|int, $default = null)
+set($key : string|int, $value : mixed)
}
class Connection {
#$configuration : Parameters
#$host
+__construct(Parameters $config)
+connect()
+getHost()
}
interface Parameters {
+get($key : string|int)
+set($key, $value : mixed)
}
AbstractConfig <|.. ArrayConfig
Parameters <|.. ArrayConfig
@enduml