valantic-spryker-eco / firstspirit-bridge-api
提供FS Bridge API的后端API
Requires
- php: >=8.0
- spryker/api: >=0.4.1
- spryker/catalog: >=5.7
- spryker/category-storage: >=2.7
- spryker/cms-page-search: >=2.5
- spryker/cms-storage: >=2.6
- spryker/event-dispatcher: >=1.3
- spryker/kernel: >=3.70
- spryker/locale: >=3.8
- spryker/product-image-storage: >=1.13.0
- spryker/product-storage: >=1.36
- spryker/store: >=1.19
- spryker/transfer: >=3.33
- spryker/url-storage: >=1.15
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-22 11:49:43 UTC
README
描述
- 提供FS Bridge API的后端API
实现
- 安装依赖项
composer require valantic-spryker-eco/firstspirit-bridge-api
- 将配置添加到
config_default.php
$firstSpiritSpaHost = 'www.frontend.de'; $config[FirstSpiritApiConstants::IS_FIRST_SPIRIT_API_DEBUG_ENABLED] = false; $config[FirstSpiritApiConstants::PAGING_SIZE] = 10; $config[FirstSpiritApiConstants::FIRST_SPIRIT_SPA_URL] = ($backofficePort === 80 ? 'http://' : 'https://') . $firstSpiritSpaHost;
- 注册DispatcherPlugin
<?php namespace Pyz\Zed\EventDispatcher; use Spryker\Zed\EventDispatcher\EventDispatcherDependencyProvider as SprykerEventDispatcherDependencyProvider; use ValanticSpryker\Zed\FirstSpiritApi\Communication\Plugin\EventDispatcher\FirstSpiritApiControllerEventDispatcherPlugin; class EventDispatcherDependencyProvider extends SprykerEventDispatcherDependencyProvider { [...] /** * @return array<\Spryker\Shared\EventDispatcherExtension\Dependency\Plugin\EventDispatcherPluginInterface> */ protected function getBackendApiEventDispatcherPlugins(): array { return [ [...] new FirstSpiritApiControllerEventDispatcherPlugin(), ]; } }
- 注册RouterPlugin
<?php namespace Pyz\Zed\Router; use Spryker\Zed\Router\RouterDependencyProvider as SprykerRouterDependencyProvider; use ValanticSpryker\Zed\FirstSpiritApi\Communication\Plugin\FirstSpiritApiRouterPlugin; class RouterDependencyProvider extends SprykerRouterDependencyProvider { [...] /** * @return array<\Spryker\Zed\RouterExtension\Dependency\Plugin\RouterPluginInterface> */ protected function getBackendApiRouterPlugins(): array { return [ [...] new FirstSpiritApiRouterPlugin(), ]; } }
- 注册FirstSpirit ResourcePlugins
<?php namespace Pyz\Zed\FirstSpiritApi; use ValanticSpryker\Zed\CategoryFirstSpiritApi\Communication\Plugin\CategoriesFirstSpiritApiResourcePlugin; use ValanticSpryker\Zed\CmsFirstSpiritApi\Communication\Plugin\CmsFirstSpiritApiResourcePlugin; use ValanticSpryker\Zed\FirstSpiritApi\FirstSpiritApiDependencyProvider as ValanticFirstSpiritApiDependencyProvider; use ValanticSpryker\Zed\ProductFirstSpiritApi\Communication\Plugin\ProductsFirstSpiritApiResourcePlugin; use ValanticSpryker\Zed\UrlResolverFirstSpiritApi\Communication\Plugin\LookUpFirstSpiritApiResourcePlugin; use ValanticSpryker\Zed\UrlResolverFirstSpiritApi\Communication\Plugin\StoreFrontFirstSpiritApiResourcePlugin; class FirstSpiritApiDependencyProvider extends ValanticFirstSpiritApiDependencyProvider { /** * @return array<\ValanticSpryker\Zed\FirstSpiritApi\Communication\Plugin\FirstSpiritApiResourcePluginInterface> */ protected function getApiResourcePluginCollection(): array { return [ new CategoriesFirstSpiritApiResourcePlugin(), new CmsFirstSpiritApiResourcePlugin(), new ProductsFirstSpiritApiResourcePlugin(), new LookUpFirstSpiritApiResourcePlugin(), new StoreFrontFirstSpiritApiResourcePlugin(), ]; } }
- 添加FS分页大小
<?php namespace Pyz\Client\Catalog; use Spryker\Client\Catalog\CatalogConfig as SprykerCatalogConfig; class CatalogConfig extends SprykerCatalogConfig { [...] /** * search catalog uses these values to validate product per page * FirstSpiritApiConstants::PAGING_SIZE should be added here as well * * @var array<int> */ protected const PAGINATION_CATALOG_SEARCH_VALID_ITEMS_PER_PAGE = [10, 12, 24, 36]; }
文档
FS API文档:https://docs.e-spirit.com/ecom/fsconnect-com-api/FirstSpirit_Connect_for_Commerce_Bridge_API_EN.html
如何做
PHP容器:docker run -it --rm --name my-running-script -v "$PWD":/data spryker/php:latest bash
运行测试:codecept run --env standalone
修复器:vendor/bin/phpcbf --standard=phpcs.xml --report=full src/ValanticSpryker/
禁用opcache:mv /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini /usr/local/etc/php/conf.d/docker-php-ext-opcache.iniold
XDEBUG
-
ip addr | grep '192.'
-
$docker-php-ext-enable xdebug
-
配置phpstorm(添加名为valantic的127.0.0.1 phpstorm服务器)
-
$PHP_IDE_CONFIG=serverName=valantic php -dxdebug.mode=debug -dxdebug.client_host=192.168.87.39 -dxdebug.start_with_request=yes ./vendor/bin/codecept run --env standalone
-
带有覆盖率运行测试:
XDEBUG_MODE=coverage vendor/bin/codecept run --env standalone --coverage --coverage-xml --coverage-html