cl-lab/amo-middleware
Composer 安装命令:
composer require cl-lab/amo-middleware
包简介
Обёртка для библиотек работающих с API AmoCRM
关键字:
README 文档
README
Установка
Через composer:
$ composer require cl-lab/amo-middleware
Использование
Для использования обёртки пропишите в файле:
use CleverLab\AmoCRM\Middleware;
$amo = new Middleware('SUBDOMAIN', 'LOGIN', 'HASH');
$result = $amo->getAccount();
Соглашения
Любая обёртка для библиотеки должна реализовывать интерфейс CleverLab\AmoCRM\Interfaces\iMiddleware
Это будет гарантировать единообразие и наличие всех необходимых методов, что позволит избежать ошшибок при изменении обёртки в клиентском коде.
При необходимости изменить поведение метода (заменить используемую им библиотеку и т.д.) не переписывать код имеющихся классов (Унаследовать класс от базового и ереопределить нужные методы).
Документация в анотация
Каждый метод обёртки, а так же методы интерфейса документированны в формате phpDoc. Так же в большинстве методов указанны ссылки на документацию по оригинальному методу API.
Документация
Параметры методов
Часть методов, например такие как: получение списка, удаление и др. Являются просто обёрткой над методами библиотеки и принимают на вход точно такие же параметры как и метод библиотеки. Подробнее узнать о передаваемых параметрах можно в документации по API AmoCRM.
Но, методы отвечающие за добавление и групповое добавление берут работу по созданию объектов на себя и принимают на вход параметры для создания этих объектов.
Рассмотрим пример добавления сделки:
За добавление одной сделки отвечает метод addLead($parameters, $debug = false).
Как же должен выглядеть массив содержащийся в $parameters? $parameters является ассациативным массивом который может содержать все те параметры, которые допустимы для данного метода https://developers.amocrm.ru/rest_api/leads_set.php но сложности начинаются на таком параметре как 'custom_fields'. Установка этого параметра в библиотеке dotzero/amocrm-php осуществляется следующим методом:
$lead->addCustomField(167379, [[388733, 'Стартап']]);
Поэтому при передаче параметров ваш массив параметров должен выглядеть так:
$parameters = array(
'name' => 'Тестовая сделка',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
),
),
);
Метод так же принимает два необязательных параметра "enum" и "subtype", при необходимости их так же можно указать:
$parameters = array(
'name' => 'Тестовая сделка',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
'enum' => true,
'subtitle' => true,
),
),
);
При групповом добавлении передаётся список параметров.
За групповое добавление сделок отвечает метод addGroupOfLeads($dataList, $debug = false).
$dataList = array(
array(
'name' => 'Тестовая сделка',
'responsible_user_id' => '697344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
),
),
),
array(
'name' => 'Тестовая сделка2',
'responsible_user_id' => '789344',
...
'custom_fields' => array(
array(
'id' => 167379,
'value' => [[388733, 'Стартап']],
),
array(
'id' => 168596,
'value' => [[384533, 'Стартап2']],
),
),
),
);
При добавлении других сущностей, действуют те же принципы.
При возниконовении вопросов, смотрите метод setParameters($object, $parameters)
При добавлении сущностей типа "Воронки и этапы продаж" вы столкнётесь с параметром "statuses_fields". В dotzero/amocrm-php данный параметр устанавливается следующим методом:
$pipeline->addStatusField([
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
]);
В этом случаи ваш массив должен выглядеть так:
$parameters = array(
'name' => 'Воронка 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
),
)
);
Метод "addStatusField" в качетве необязательного параметра может принимать уникальный идентификатор этапа воронки.
Чтобы его передать сформируйте массив параметров следующим образом:
$parameters = array(
'name' => 'Воронка 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
'id' => 12345,
),
)
);
Для множественного добавления воронок, так же как и в случаи со сделками, сформируйте массив параметров. Как например:
$dataList = array(
$parameters = array(
'name' => 'Воронка 1',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending',
'sort' => 10,
'color' => '#fffeb2',
),
'id' => 12345,
),
)
),
$parameters = array(
'name' => 'Воронка 2',
'sort' => 1,
...
'statuses_fields' => array(
array(
'parameters' => array(
'name' => 'Pending2',
'sort' => 11,
'color' => '#fffeb2',
),
),
array(
'parameters' => array(
'name' => 'Pending3',
'sort' => 2,
'color' => '#fffeb2',
),
'id' => 2154,
),
)
)
);
cl-lab/amo-middleware 适用场景与选型建议
cl-lab/amo-middleware 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 34 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 09 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「middleware」 「crm」 「amoCRM」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 cl-lab/amo-middleware 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 cl-lab/amo-middleware 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 cl-lab/amo-middleware 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Shoot aims to make providing data to your templates more manageable
A PHP client for the Salesforce SOAP API
A PSR-7 compatible library for making CRUD API endpoints
Command-line utility for Vtiger CRM.
Slim Framework 3 CSRF protection middleware utilities
Library for Kommo (AmoCRM)
统计信息
- 总下载量: 34
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-09-27