2017 © Pedro PelĆ”ez
 

library twig-template-engine

Memio's Twig templates, used to generate PHP code from given Model

image

memio/twig-template-engine

Memio's Twig templates, used to generate PHP code from given Model

  • Friday, March 2, 2018
  • by gnupat
  • Repository
  • 1 Watchers
  • 3 Stars
  • 119,511 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 5 Forks
  • 0 Open issues
  • 21 Versions
  • 8 % Grown

The README.md

Memio's TwigTemplateEngine

Memio is a highly opinionated PHP code generator library. It is composed of small independent packages, one being PrettyPrinter: the actual code generator., (*1)

PrettyPrinter relies on an interface, TemplateEngine, but doesn't provide any implementation to avoid direct coupling to any templating libraries., (*2)

This package, TwigTemplateEngine, provides an implementation and templates for Twig., (*3)

Note: This package is part of Memio. Have a look at the main repository., (*4)

Installation

Install it using Composer:, (*5)

composer require memio/twig-template-engine:^3.0

Example

We're going to generate a class with a constructor and two attributes:, (*6)

<?php

require __DIR__.'/vendor/autoload.php';

use Memio\Model\File;
use Memio\Model\Objekt;
use Memio\Model\Property;
use Memio\Model\Method;
use Memio\Model\Argument;

// Initialize the code generator
$loader = new \Twig\Loader\FilesystemLoader(__DIR__.'/templates');
$twig = new \Twig\Environment($loader);

$line = new Memio\TwigTemplateEngine\TwigExtension\Line\Line();
$line->add(new Memio\TwigTemplateEngine\TwigExtension\Line\ContractLineStrategy());
$line->add(new Memio\TwigTemplateEngine\TwigExtension\Line\FileLineStrategy());
$line->add(new Memio\TwigTemplateEngine\TwigExtension\Line\MethodPhpdocLineStrategy());
$line->add(new Memio\TwigTemplateEngine\TwigExtension\Line\ObjectLineStrategy());
$line->add(new Memio\TwigTemplateEngine\TwigExtension\Line\StructurePhpdocLineStrategy());

$twig->addExtension(new Memio\TwigTemplateEngine\TwigExtension\Type());
$twig->addExtension(new Memio\TwigTemplateEngine\TwigExtension\Whitespace($line));

$templateEngine = new Memio\TwigTemplateEngine\TwigTemplateEngine($twig);
$prettyPrinter = new Memio\PrettyPrinter\PrettyPrinter($templateEngine);

// Describe the code you want to generate using "Models"
$myService = (new File('src/Vendor/Project/MyService.php'))
    ->setStructure(
        (new Objekt('Vendor\Project\MyService'))
            ->addProperty(new Property('createdAt'))
            ->addProperty(new Property('filename'))
            ->addMethod(
                (new Method('__construct'))
                    ->addArgument(new Argument('DateTime', 'createdAt'))
                    ->addArgument(new Argument('string', 'filename'))
            )
    )
;

// Generate the code and display in the console
echo $prettyPrinter->generateCode($myService);

// Or display it in a browser
// echo '

'.htmlspecialchars($prettyPrinter->generateCode($myService)).'
';

With this simple example, we get the following output:, (*7)

<?php

namespace Vendor\Project;

class MyService
{
    private $createdAt;
    private $filename;

    public function __construct(DateTime $createdAt, string $filename)
    {
    }
}

Have a look at the main respository to discover the full power of Memio., (*8)

Want to know more?

Memio uses phpspec, which means the tests also provide the documentation. Not convinced? Then clone this repository and run the following commands:, (*9)

$ composer install
$ ./vendor/bin/phpspec run -n -f pretty

You can see the current and past versions using one of the following:, (*10)

And finally some meta documentation:, (*11)

The Versions

02/03 2018

dev-master

9999999-dev http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

02/03 2018

v2.0.3

2.0.3.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

06/02 2018

dev-version-2

dev-version-2 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

06/02 2018

v2.0.2

2.0.2.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

02/01 2018

v2.0.1

2.0.1.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

12/01 2017

v2.0.0-alpha3

2.0.0.0-alpha3 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

12/01 2017

v2.0.0

2.0.0.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

12/01 2017

v1.2.7

1.2.7.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

27/09 2016

v2.0.0-alpha2

2.0.0.0-alpha2 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

21/12 2015

v1.2.6

1.2.6.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

01/12 2015

v1.2.5

1.2.5.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

30/06 2015

v1.2.4

1.2.4.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

04/06 2015

v1.2.3

1.2.3.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

14/05 2015

v1.2.1

1.2.1.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

14/05 2015

v1.2.0

1.2.0.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

14/05 2015

v1.1.1

1.1.1.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

13/05 2015

v1.1.0

1.1.0.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

29/04 2015

v1.0.2

1.0.2.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

29/04 2015

v1.0.1

1.0.1.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

29/04 2015

v1.0.0

1.0.0.0 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates

28/04 2015

v1.0.0-rc1

1.0.0.0-RC1 http://memio.github.io/memio

Memio's Twig templates, used to generate PHP code from given Model

  Sources   Download

MIT

The Requires

 

The Development Requires

twig php code generator templates