Releases: biplane/yandex-direct
5.0.1
5.0.0
Переход с 4.x на 5.0
Biplane\YandexDirect\User
Класс Biplane\YandexDirect\User
отмечен как устаревший, и будет удален в 6.0
. Вместо этого рекомендуется использовать Biplane\YandexDirect\Config
и фабрики для сервисов, ApiServiceFactory
и ReportServiceFactory
.
4.x:
use Biplane\YandexDirect\User;
use Biplane\YandexDirect\UserBuilder;
use Symfony\Component\EventDispatcher\EventDispatcher;
$session = (new UserBuilder(new EventDispatcher()))
->setAccessToken('INSERT_ACCESS_TOKEN')
->setLocale(User::LOCALE_RU)
->setLogin('agro')
->getUser();
$service = $session->getCampaignsService();
// $service is instance of Biplane\YandexDirect\Api\V5\Campaigns
5.0
use Biplane\YandexDirect\Api\V5\Campaigns;
use Biplane\YandexDirect\ApiServiceFactory;
use Biplane\YandexDirect\ConfigBuilder;
$config = ConfigBuilder::create()
->setAccessToken('INSERT_ACCESS_TOKEN')
->setLocale('ru')
->setClientLogin('agro')
->getConfig();
$serviceFactory = new ApiServiceFactory();
$service = $serviceFactory->createService($config, Campaigns::class);
// $service is instance of Biplane\YandexDirect\Api\V5\Campaigns
[BC break] Изменения в типах исключений
Biplane\YandexDirect\Exception\ApiException
- Удалены константы кодов ошибок API.
- Удалены методы
getMethodName()
иgetMethodRef()
Biplane\YandexDirect\Exception\NetworkException
Данный класс был удален.
При ошибках с сетью для SOAP-сервисов будет выброшено SoapFault
, а для сервиса отчетов - Biplane\YandexDirect\Exception\DownloadReportException
.
Biplane\YandexDirect\Exception\RequestException
Данный класс был удален. Ранее использовался как общий тип для ApiException
и NetworkException
.
[BC break] Сервис Reports
Теперь сервис совместим с PSR-18 (HTTP Client) и PSR-17 (HTTP Factories). Для поиска подходящей реализации используется php-http/discovery
, но можно явно указать зависимости при инициализации фабрики ReportServiceFactory
.
Biplane\YandexDirect\Api\V5\Report\ReportDefinitionBuilder
Данный класс удален. Вместо этого следует использовать Biplane\YandexDirect\Api\V5\Reports\ReportDefinition
, который по структуре соответствует спецификации.
Biplane\YandexDirect\Api\V5\Report\ReportRequest
Данный класс был удален. Его аналогом можно считать Biplane\YandexDirect\Api\V5\Reports\ReportRequest
. Только последний является неизменяемым, а для инициализации нужно использовать Biplane\YandexDirect\Api\V5\Reports\ReportRequestBuilder
.
Biplane\YandexDirect\Api\V5\Report\ReportResult
- Изменено пространство имен,
Biplane\YandexDirect\Api\V5\Reports
- Метод
getData
переименован вgetAsString
- Метод
save
переименован вsaveToFile
. И данный метод в качестве аргумента теперь принимает только строку. Если нужно работать с потоком, то для этого есть новый метод -getStream
.
4.x
use Biplane\YandexDirect\User;
use Biplane\YandexDirect\Api\V5\Report;
$session = new User([
'access_token' => 'INSERT_ACCESS_TOKEN',
'login' => 'agro',
]);
$service = $session->getReportsService();
$reportDefinition = (new Report\ReportDefinitionBuilder())
->setReportName('demo')
->setReportType(Report\ReportTypeEnum::CAMPAIGN_PERFORMANCE_REPORT)
->setDateRangeType(Report\DateRangeTypeEnum::AUTO)
->setFieldNames([
Report\FieldEnum::DATE,
Report\FieldEnum::CAMPAIGN_ID,
Report\FieldEnum::COST,
])
->addFilter(Report\FieldEnum::CAMPAIGN_ID, Report\FilterOperatorEnum::IN, [12301, 12302])
$request = (new Report\ReportRequest())
->setDefinition($reportDefinition)
->returnMoneyAsFloat()
->skipReportHeader()
->skipReportSummary();
$service->download('path/to/file.tsv', $request);
5.0
use Biplane\YandexDirect\Api\V5\Reports;
use Biplane\YandexDirect\ConfigBuilder;
use Biplane\YandexDirect\ReportServiceFactory;
$config = ConfigBuilder::create()
->setAccessToken('INSERT_ACCESS_TOKEN')
->setClientLogin('agro')
->getConfig();
$serviceFactory = new ReportServiceFactory();
$service = $serviceFactory->createService($config);
$selectionCriteria = Reports\SelectionCriteria::create()
->addFilter(Reports\FilterItem::create(Reports\FieldEnum::CAMPAIGN_ID, Reports\FilterOperatorEnum::IN, ['12301', '12302']));
$reportDefinition = Reports\ReportDefinition::create($selectionCriteria)
->setReportName('demo')
->setReportType(Reports\ReportTypeEnum::CAMPAIGN_PERFORMANCE_REPORT)
->setDateRangeType(Reports\DateRangeTypeEnum::AUTO)
->setFieldNames([
Reports\FieldEnum::DATE,
Reports\FieldEnum::CAMPAIGN_ID,
Reports\FieldEnum::COST,
])
$request = Reports\ReportRequestBuilder::create()
->setReportDefinition($reportDefinition)
->returnMoneyInMicros(false)
->skipReportHeader(true)
->skipReportSummary(true)
->getReportRequest();
$result = $service->getReady($request);
$result->saveToFile('/path/to/file.tsv');
5.0.0-beta3
4.20.0
5.0.0-beta1
Sync with the latest versions of WDSL
4.19.0
4.16.0
4.15.0
Fix regression
Отменены изменения в части генерации кода для массива-подобных типов, сделанные в f954f72. Так как, эти изменения несовместимы с нативным SoapClient
, в случае десериализации XML.
- public function setTrackingPixels(array $value = null)
+ public function setTrackingPixels(TrackingPixelGetArray $value = null)
Biplane\YandexDirect\Api\V5\Contract\CpmBannerAdBuilderAdGet
Biplane\YandexDirect\Api\V5\Contract\CpmVideoAdBuilderAdGet
- public function setPriorityGoals(array $value = null)
+ public function setPriorityGoals(PriorityGoalsArray $value = null)
Biplane\YandexDirect\Api\V5\Contract\DynamicTextCampaignAddItem
Biplane\YandexDirect\Api\V5\Contract\DynamicTextCampaignGetItem
Biplane\YandexDirect\Api\V5\Contract\RetargetingListGetItem
Biplane\YandexDirect\Api\V5\Contract\TextCampaignAddItem
Biplane\YandexDirect\Api\V5\Contract\TextCampaignGetItem