akeneo/api-php-client-ee 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

akeneo/api-php-client-ee

最新稳定版本:v7.0

Composer 安装命令:

composer require akeneo/api-php-client-ee

包简介

Akeneo PIM ENTERPRISE client for the API

README 文档

README

TL;DR: Please use api-php-client instead.

This Enterprise Edition project is now merged into the main api-php-client project.
This allows easier maintainability by avoiding many duplications.

Migrate to main package

Switch the dependency

In composer.json, switch the dependency to the main akeneo/api-php-client package.
The main package start supporting EE features from v8.0.0.

{
  "require": {
    "akeneo/api-php-client": "^8.0.0"
  }
}

Rename uses

The only breaking change is the namespace uniformization that will break use statements:
Akeneo\PimEnterprise was renamed to Akeneo\Pim

You can use this command to rename all your use statements in your project:

find -name '*.php' -exec sed -i 's/PimEnterprise/Pim/g' {} +
# You can add a path as first argument

PHP Akeneo PIM API

A simple PHP client to use the Akeneo PIM API with the Enterprise Edition.

Matrix compatibility:

PIM EE version(s) API PHP Client EE version CI status
v2.0 v1.0 Build Status
v2.1 - v2.2 v2.0 Build Status
v2.3 v3.0 Build Status
v3.0 - v3.1 v4.0 Build Status
v3.2 - v4.0 v5.0 Build Status
v5.0 v6.0 -
v6.0 v7.0 -
- master -

Note that our PHP client is backward compatible. For example, if your PIM is currently a v2.3, you can still use a 1.0 version of the PHP client. The new endpoints available in v2.3 will not be available in the v1.0 of the PHP client.

Requirements

  • PHP >= 7.4
  • Composer

Installation

We use HTTPPlug as the HTTP client abstraction layer. In this example, we will use Guzzle v6 as the HTTP client implementation.

api-php-client-ee uses Composer. The first step to use api-php-client-ee is to download composer:

$ curl -s http://getcomposer.org/installer | php

Then, run the following command to require the library:

$ php composer.phar require akeneo/api-php-client-ee php-http/guzzle6-adapter:^2.0 http-interop/http-factory-guzzle:^1.0

If you want to use another HTTP client implementation, you can check here the full list of HTTP client implementations.

Documentation

Full documentation is available on the API website.

Getting started

Initialise the client

You first need to initialise the client with your credentials client id/secret and with your user/password.

If you don't have any client id, let's take a look at this page to create it.

<?php

require_once __DIR__ . '/vendor/autoload.php';

$clientBuilder = new \Akeneo\PimEnterprise\ApiClient\AkeneoPimEnterpriseClientBuilder('http://localhost/');
$client = $clientBuilder->buildAuthenticatedByPassword('client_id', 'secret', 'admin', 'admin');

You can authenticate to the client with your token/refresh token as well.

$client = $clientBuilder->buildAuthenticatedByToken('client_id', 'secret', 'token', 'refresh_token');

Getting the token and refresh token is as simple as:

$client->getToken();
$client->getRefreshToken();

Get a product

$product = $client->getProductApi()->get('top');
echo $product['identifier']; // display "top"

Get a list of products

By getting pages

$searchBuilder = new \Akeneo\Pim\ApiClient\Search\SearchBuilder();
$searchBuilder->addFilter('enabled', '=', true);
$searchFilters = $searchBuilder->getFilters();

$firstPage = $client->getProductApi()->listPerPage(50, true, ['search' => $searchFilters]);

echo $firstPage->getCount();

foreach ($firstPage->getItems() as $product) {
    // do your stuff here
    echo $product['identifier'];
}

$nextPage = $firstPage->getNextPage();

$firstPage = $nextPage->getPreviousPage();

By getting a cursor

$searchBuilder = new \Akeneo\Pim\ApiClient\Search\SearchBuilder();
$searchBuilder->addFilter('enabled', '=', true);
$searchFilters = $searchBuilder->getFilters();

$products = $client->getProductApi()->all(50, ['search' => $searchFilters]);
foreach ($products as $product) {
    // do your stuff here
    echo $product['identifier'];
}

Create a product

$client->getProductApi()->create('top', ['enabled' => true]);

Upsert a product

$client->getProductApi()->upsert('top', ['family' => 'tshirt']);

Upsert a list of of products

$client->getProductApi()->upsertList([
    [
        'identifier' => 'top',
        'family' => 'tshirt',
    ],
    [
        'identifier' => 'cap',
        'categories' => ['hat'],
    ],
]);

Testing

Do note that you have to delete the composer.lock because Doctrine dependencies are loaded. These dependencies are different in function of the PHP version running composer install.

cp docker-compose.yml.dist docker-compose.yml
rm -rf composer.lock vendor/
docker-compose run client_72 composer install
docker-compose run client_72 bin/phpunit -c phpunit.xml.dist
docker-compose run client_72 bin/phpspec run
docker-compose run client_72 bin/php-cs-fixer fix --diff --dry-run --config=.php_cs.php -vvv

Support

The support of this client is made in best effort by our Akeneo team.

If you find a bug or want to submit an improvement, don't hesitate to raise an issue on Github. Also, you can ask questions and discuss about the PHP client with the community in the Slack User Group.

akeneo/api-php-client-ee 适用场景与选型建议

akeneo/api-php-client-ee 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 825.26k 次下载、GitHub Stars 达 10, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 akeneo/api-php-client-ee 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 akeneo/api-php-client-ee 我们能提供哪些服务?
定制开发 / 二次开发

基于 akeneo/api-php-client-ee 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 825.26k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 10
  • 点击次数: 31
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 10
  • Watchers: 26
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: OSL-3.0
  • 更新时间: 未知