1. Go to this page and download the library: Download pugx/godfather library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pugx / godfather example snippets
// Pseudo Code
class Cart
function add(ProductInterface $product, OptionsInterface $options)
{
if ($product instanceOf Mug) {
$item = $mugManager->add($options);
}
if ($product instanceOf Tshirt) {
$item = $tshirtManager->add($options);
}
// ...
}
// Pseudo Code
class Cart
function add(ProductInterface $product, OptionsInterface $options)
{
$item = $this->godfather->getManager($product)->add($options);
// ...
}
$container = new Container\ArrayContainerBuilder();
$container->set('mug_service', new Your\MugService);
$container->set('tshirt_service', new Your\TshirtService);
$godfather = new Godfather($container, 'godfather');
$godfather->addStrategy('service', 'Mug', 'mug_service');
$godfather->addStrategy('service', 'Tshirt', 'tshirt_service');
// Step2. usage
class Cart
public function __construct($godfather)
//...
public function add(ProductInterface $product, OptionsInterface $options)
{
// get the strategy for cart with the context $product
$service = $this->godfather->getStrategy('service', $product);
// or $strategy = $this->godfather->getCart($product);
return $strategy->addToCart($product, $options);
}
$container = new Container\ArrayContainerBuilder();
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('services.xml');
$godfather = new Godfather($container, 'godfather');
// Step2. usage
class Cart
public function __construct($godfather)
//...
public function add(ProductInterface $product, OptionsInterface $options)
{
// get the strategy for cart with the context $product
$service = $this->godfather->getStrategy('service', $product);
// or $strategy = $this->godfather->getService($product);
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
...
new PUGX\GodfatherBundle\GodfatherBundle(),
$product = new \Product\ShoeProduct();
$manager = $container->get('godfather')->getManager($product);
// or $manager = $container->get('godfather')->getStrategy('manager', $product);
// then $manager->doSomethingGreat();
php
$product = random(0,1)? new Entity\Mug: new Entity\Product
$productService = $godfather->getStrategy('service', $product);
// also works with
$productService = $godfather->getService($product);
echo get_class($productService);
// will be randomly TshirtService or MugService