1. Go to this page and download the library: Download constpb/amo-placeholder 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/ */
constpb / amo-placeholder example snippets
LocaleService::setLocale('ru');
$this->typeFactory = new CommonTypeFactory(); // creates inner representation of AmoCRM custom fields
$this->handlerFactory = new HandlerFactory($this->logger); // creates handler decides placeholder of given custom field looks like
$this->placeholderFactory = new PlaceholderFactory(); // creates placeholder of given custom field representing entity (like 'Lead') and name (like 'Name of lead')
$this->placeholderBuilder = new CommonPlaceholderBuilder($this->logger, $this->handlerFactory, $this->placeholderFactory); // creates an array of placeholders strings of given entity type
$this->customFieldMapper = new CustomFieldMapper($this->logger); // creates an inner representation of AmoCRM custom fields from Amocrm custom field model
$this->entityMapperFactory = new CommonEntityMapperFactory( $this->typeFactory, $this->logger); // creates an inner representation of AmoCRM entity from Amocrm entity model
$this->replacer = new CommonReplacer($this->logger, $this->handlerFactory, $this->placeholderFactory); // creates an array with placeholders values as key and model values as values
/**
* parses given string template with placeholders and substitutes given model values
*/
$this->templateProcessor = new MessageTemplateProcessorService(
$this->logger,
$this->placeholderBuilder,
$this->customFieldMapper,
$this->entityMapperFactory,
$this->replacer
);
$contactCustomFields = $amocrmClient->customFields(EntityTypesInterface::CONTACTS)->get();
$placeholders = $this->templateProcessor->getVariables(EntityTypeEnum::CONTACT, $contactCustomFields) // managers may choose placeholders from list during client message creation
// then
$contact = new ContactModel();
$contact->setName('John');
$template = 'Hello, {{Contact / Name of contact}}!';
$message = $this->templateProcessor->replaceVariables($template, $contact); // results in Hello, John!
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.