Skip to content

Commit 4a011d8

Browse files
committed
Adapter example files
1 parent 1194e43 commit 4a011d8

17 files changed

+728
-0
lines changed

Adapter/composer.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"autoload": {
3+
"psr-4": {
4+
"Adapter\\": "src"
5+
}
6+
}
7+
}

Adapter/index.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
require 'vendor/autoload.php';
4+
5+
use Adapter\Book;
6+
use Adapter\BookInterface;
7+
use Adapter\Kindle;
8+
use Adapter\eReaderAdapter;
9+
use Adapter\Nook;
10+
11+
class Person
12+
{
13+
public function read(BookInterface $book)
14+
{
15+
$book->open();
16+
$book->turnPage();
17+
}
18+
}
19+
20+
//Reading Book
21+
//(new Person())->read(new Book());
22+
23+
//Reading Kindle
24+
//(new Person())->read(new eReaderAdapter(new Kindle()));
25+
26+
//Reading Nook
27+
(new Person())->read(new eReaderAdapter(new Nook()));

Adapter/src/Book.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
4+
namespace Adapter;
5+
6+
7+
class Book implements BookInterface
8+
{
9+
public function open()
10+
{
11+
echo "opening the book \n";
12+
}
13+
14+
public function turnPage()
15+
{
16+
echo "turning the page \n";
17+
}
18+
}

Adapter/src/BookInterface.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
4+
namespace Adapter;
5+
6+
7+
interface BookInterface
8+
{
9+
public function open();
10+
11+
public function turnPage();
12+
}

Adapter/src/Kindle.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
4+
namespace Adapter;
5+
6+
7+
class Kindle implements eReaderInterface
8+
{
9+
10+
public function turnOn()
11+
{
12+
echo "Kindle turning on \n";
13+
}
14+
15+
public function pressNextButton()
16+
{
17+
echo "Kindle press next button \n";
18+
}
19+
}

Adapter/src/Nook.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
4+
namespace Adapter;
5+
6+
7+
class Nook implements eReaderInterface
8+
{
9+
10+
public function turnOn()
11+
{
12+
echo "Nook turning on \n";
13+
}
14+
15+
public function pressNextButton()
16+
{
17+
echo "Nook press next button \n";
18+
}
19+
}

Adapter/src/eReaderAdapter.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
4+
namespace Adapter;
5+
6+
7+
class eReaderAdapter implements BookInterface
8+
{
9+
protected $reader;
10+
11+
public function __construct(eReaderInterface $reader)
12+
{
13+
$this->reader = $reader;
14+
}
15+
16+
17+
public function open()
18+
{
19+
return $this->reader->turnOn();
20+
}
21+
22+
public function turnPage()
23+
{
24+
return $this->reader->pressNextButton();
25+
}
26+
}

Adapter/src/eReaderInterface.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
4+
namespace Adapter;
5+
6+
7+
interface eReaderInterface
8+
{
9+
public function turnOn();
10+
11+
public function pressNextButton();
12+
}

Adapter/vendor/autoload.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
// autoload.php @generated by Composer
4+
5+
require_once __DIR__ . '/composer/autoload_real.php';
6+
7+
return ComposerAutoloaderInit94bb537020a46c1cade03cdbcb5652ff::getLoader();

0 commit comments

Comments
 (0)