sharkzt/fibonacci

Fibonacci php classes implementation as singleton, strategy and adapter design patterns

1.2.1 2017-06-26 19:51 UTC

This package is not auto-updated.

Last update: 2024-05-25 17:49:13 UTC


README

Fibonacci php classes implementation as singleton, strategy and adapter design patterns

Build Status Coverage Status

Installation

The recommended way to install bundle is through Composer:

$ composer require sharkzt/fibonacci

Usage Examples

Singleton

//get fibonacci series via class with recursion approach
$fibonacciWithRecursion = new \Sharkzt\Fibonacci\Singleton\Fibonacci(11);
return $fibonacciWithRecursion->getSeries();

//get fibonacci series via class with iteration approach 
$fibonacciWithIteration = new \Sharkzt\Fibonacci\Singleton\FibonacciIterator(11);
$fibonacciWithIteration->initialize();
return $fibonacciWithIteration->getSeries();

Code above will return [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].

Adapter

//get fibonacci series via iterator adapter
$fibonacciIteratorAdapter = new FibonacciIteratorAdapter(new FibonacciIterator());
$fibonacciIteratorAdapter
    ->setCount(11)
    ->initialize();

return $fibonacciIteratorAdapter->getSeries();

//get fibonacci series via recursion adapter
$fibonacciIteratorAdapter = new FibonacciRecursionAdapter(new Fibonacci());
$fibonacciIteratorAdapter
    ->setCount(11)
    ->initialize();

return $fibonacciIteratorAdapter->getSeries();

This will return [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].

Strategy

//get fibonacci series with iteration strategy
$fibonacciStrategy = new FibonacciStrategy(new Fibonacci(), new FibonacciIterator());
$fibonacciStrategy->setStrategy($fibonacciStrategy->iterationStrategy);
$fibonacciStrategy
    ->setCount(11)
    ->initialize();

return $fibonacciStrategy->getSeries();

//get fibonacci series with recursion strategy
$fibonacciStrategy = new FibonacciStrategy(new Fibonacci(), new FibonacciIterator());
$fibonacciStrategy->setStrategy($fibonacciStrategy->recursionStrategy);
$fibonacciStrategy
    ->setCount(11)
    ->initialize();

return $fibonacciStrategy->getSeries();

Result is [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].

License

Fibonacci classes are released under the MIT License. See the bundled LICENSE file for details.