承接 volldigital/laravel-navision 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

volldigital/laravel-navision

Composer 安装命令:

composer require volldigital/laravel-navision

包简介

README 文档

README

A small package to communicate with Microsoft Navision. You can fetch collections and single records.

Install

Run following commands:

composer require volldigital/laravel-navision
php artisan vendor:publish --provider="VOLLdigital\LaravelNavision\LaravelNavisionServiceProvider"

Edit your "config/ntlm.php" file or use the ENV variables.

Usage

After setting up your config, load the client via:

$client = app(VOLLdigital\LaravelNavision\Client::class);

Now you are ready to recieve data from your Navision.

Examples:

$client = app(VOLLdigital\LaravelNavision\Client::class);

$data = $client->fetchCollection("Events");

$event = $client->fetchOne("Events", 'Key', 'Number');

You can also pull data chunk-wise. The data will be written in a text file and after the request finished, it will be parsed and deleted.

$client = app(VOLLdigital\LaravelNavision\Client::class);

// file will be stored in /storage/app/temp/curl_uniqueid.temp

$data = $client->fetchCollection("Events", true);

You want to check if your connection to UNITOP is established? You can use the ping function and check it :)

$client = app(VOLLdigital\LaravelNavision\Client::class);

if ($client->ping() === false) {
    throw new RunTimeException('No connection available');
}

Write data

Use $client->writeData(string $url, array $data); to write data into navision.

Example:

$client->writeData(
    'Items',
    [
        'Item_Code' => 'VD',
        'Item_Description' => 'Test data'
    ]
);

Count items

Use $client->countCollection("YourCollection") to recieve the amount of items in this collection.

Example:

dd($client->countCollection('Events')); // Outputs: 100293

Examples

Query params

  • $skip=XXXX - Skip X amount of itmes
$temp = $this->client->fetchCollection('Events?$skip=10000');
  • $top=XXXX - Recieve X amount of items
$temp = $this->client->fetchCollection('Events?$top=10');

Fetching data

    protected function fetchData(string $uri, $key, bool $chunk = false, ?callable $filter = null)
    {
        $temp = $this->client->fetchCollection($uri, $chunk);
        $data = [];

        foreach($temp as $ts) {
            if (!is_null($filter) && $filter($ts) === false) {
                continue;
            }

            $data[$ts[$key]] = $ts;
        }

        return collect($data);
    }

Pagination

    protected function fetchAll()
    {
        $number = $this->client->countCollection('Events');
        $pageLimit = 10000;
        $pages = (int)ceil($number / $pageLimit);
        $events = [];

        for ($i = 0; $i < $pages; $i++) {
            $skip = $i * $pageLimit;

            $temp = $this->fetchData('Events?$skip='.$skip, 'Number');

            $events = array_merge($events, $temp->toArray());
        }

        return collect($events);
    }

volldigital/laravel-navision 适用场景与选型建议

volldigital/laravel-navision 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 165 次下载、GitHub Stars 达 2, 最近一次更新时间为 2019 年 10 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 volldigital/laravel-navision 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 165
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-10-29