davidecristiani / permutation-mail-merge

Permutation Mail Merge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Permutation Mail Merge

Permutation Mail Merge is yet another example of recursion in PHP to achieve permutation (with order and without repetition).

Starting from the end, take a look at the output of the program to get an idea of what it does.

For a more detailed overview of Permutation Mail Merge, you can read the tutorial (also translated in Italian):

🇬🇧 Permutation with recursion in PHP

🇮🇹 Permutazione con ricorsione in PHP


Use Case

The use case of this program is a customized version of Mail Merge, which is an operation that combine a text (which we'll call text_base) with N contacts, inserting the contact in a position specified by a placeholder.

In our case, instead of having just 1 placeholder in the base_text, as in the classical Mail Merge, we have N placeholders in the base_text. The output is therfore a set of N! mails. Each position is marked in the base_text by a placeholder.

With the current variables, the software finds all the possible combinations of a work teams of 5 contacts (so N=5) and produces the mails that describe each team.

The draft of the mail with a description of the work team is the base_text where each contact role position is marked by a placeholder.

The output is a set of 120 mails (5!=120 ... woah, some confusion between the mathematical notation "5 factorial equals 120", and the PHP comparison "5 differs from 120"; this is the first), that will be returned as an array assembled_texts.


Technical notes

The program is educational; it's written using the programming language PHP and the output is pure HTML.

All the words marked as code in this README are declared as variables in the program. If a word is plural (with a final "s") it's an indication that the variable is an array.

The source of the program is in the /src/index.php file.

You can see a static version of the output of the program (formatted as a valid HTML) on a GitHub Pages site.

About Docker containers

A Docker Compose configuration (stack: "nginx" and "php-fpm") is included in the repository to allow you to execute the program without using your web server.

To execute the program with Docker Compose:

  • Install and activate Docker (if you haven't already)
  • Open the terminal
  • Execute a cd command in the main directory (the directory that contains the file docker-compose.yml).
  • Execute the command docker-compose up
  • Open your browser and go to the address http://localhost

Credits

About

Permutation Mail Merge

License:MIT License


Languages

Language:PHP 99.0%Language:Dockerfile 1.0%