Code Monkey home page Code Monkey logo

parser's Introduction

Build Status Scrutinizer Code Quality Software License Code Coverage

Simple placeholder parser

Parser replaces specific placeholders with proper data.

Basic usage

Let's take a look at the simplest possible example:

$parser = new Parser;
$string = "Hello {{name}}!";
$parser->parse($string, ['name' => 'Nikola Tesla']); //returns: Hello Nikola Tesla!

Of course you may use object instead of primitive array

$parser = new Parser;

$customer = new Customer;
$customer->name = 'Nikola Tesla';

$string = "Hello {{customer.name}}!";
$parser->parse($string, ['customer' => $customer]); //returns: Hello Nikola Tesla!

Parser is smart enough to access private properties using getters.

It also supports nested objects as well

$parser = new Parser;

$customer = new Customer;
$address = new Address('Green Alley', 12, 'London', 'LN4 4GD', 'United Kingdom');
$customer->setAddress($address);

$string = "{{customer.address.street}}";
$parser->parse($string, ['customer' => $customer]); //returns: Green Alley

Nested array are also welcome

$parser = new Parser();
$data = ['user' =>  ['supervisor' => ['name' => 'Harry']]];
$parser->parse('Hi {{user.supervisor.name}}!', $data); //returns: Hi Harry!

Use custom embrace string

By default Parser uses "{{" as open string and "}}" as close string. You can set your own embrace strings using method

$parser = new Parser();
$parser->setEmbraceStrings("*", "*");
$parser->parse("All *fruit* are *color*.", ["fruit" => "oranges", "color" => "orange"]);
//returns "All oranges are orange."

or using constructor

$parser = new Parser("", "*", "*");

Note, embrace strings can not contains # char.

Formatting

Sometimes you need to use additional formatting for specific objects. The great example is DateTime. The best way to achieve this goal is use adapter pattern (or decorator) for your object. The parser shouldnt be able to do that for you.

parser's People

Contributors

ayeo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.