stefandoorn/3dbinpacking-php-api 问题修复 & 功能扩展

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

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

stefandoorn/3dbinpacking-php-api

最新稳定版本:0.5

Composer 安装命令:

composer require stefandoorn/3dbinpacking-php-api

包简介

3dbinpacking.com PHP API

README 文档

README

3dbinpacking.com PHP API Wrapper

Build Status Scrutinizer Code Quality Test Coverage Code Climate StyleCI Latest Stable Version Total Downloads License

This library acts as a PHP wrapper around the API available at 3dbinpacking.com.

WARNING: this package is abandoned and will not receive support. It will stay available on GH.

Table Of Content

  1. Requirements
  2. Installation
  3. Example
  4. License

Requirements

This library uses PHP 5.5+.

To use the 3dbinpacking.com API Wrapper, you have to request an access key from 3dbinpacking.com. For every request, you will have to provide the username & API Key.

Note: this service is NOT free of usage.

Installation

It is recommended that you install the library through composer. To do so, run the Composer command to install the latest stable version of the API wrapper:

composer require stefandoorn/3dbinpacking-php-api

Example

// Build packing request
$request = new \BinPacking3d\Entity\Request();

$bin = new \BinPacking3d\Entity\Bin();
$bin->setWidth(100);
$bin->setHeight(120);
$bin->setDepth(130);
$bin->setMaxWeight(10);
$bin->setOuterWidth(110);
$bin->setOuterHeight(130);
$bin->setOuterDepth(140);
$bin->setWeight(0.1);
$bin->setIdentifier('Test');
$bin->setInternalIdentifier(1);
$request->addBin($bin);

// Item
$item = new \BinPacking3d\Entity\Item();
$item->setWidth(50);
$item->setHeight(60);
$item->setDepth(70);
$item->setWeight(5);
$item->setItemIdentifier('Test');
$item->setProduct(['product_id' => 1]);
$request->addItem($item);

// Set extra info
$request->setApiKey('API KEY');
$request->setUsername('USERNAME');

// Perform request and get results
$boxes = $packIntoMany->run();

// Process result, in here we get all the packed boxes including the items per box
foreach ($boxes->yieldBins() as $packedBox) {
    // Get weight of box
    $weight = $packedBox->getUsedWeight();

    // Get dimensions
    $height = $packedBox->getOuterHeight();
    $width = $packedBox->getOuterWidth();
    $depth = $packedBox->getOuterDepth();

    // Get identifier
    $identifier = $packedBin->getIdentifier();

    // Get items in this box
    foreach ($packedBox->yieldItems() as $item) {
    	// Get additional product data supplied (e.g. IDs, SKUs, etc)
    	$product = $item->getProduct();

    	// Add to database etc...
    }
}

Optional you can add a PSR-3 compatible logger to the Request object:

$log = new \Monolog\Logger('binpacking');
$log->pushHandler(new \Monolog\Handler\StreamHandler('binpacking.log', \Monolog\Logger::DEBUG));

Optional you can add a Cache driver compatible with doctrine/cache, e.g.:

$cacheDriver = new \Doctrine\Common\Cache\RedisCache();
$redis = new Redis;
$redis->connect($redisHost);
$cacheDriver->setRedis($redis);
$packIntoMany->setCache($cacheDriver);

License

3dbinpacking.com API Wrapper is licensed under The MIT License (MIT).

统计信息

  • 总下载量: 1.86k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-10-28