nuxeo/nuxeo-php-client
Composer 安装命令:
composer require nuxeo/nuxeo-php-client
包简介
PHP Client Library for the Nuxeo Automation API
关键字:
README 文档
README
Nuxeo PHP Client
The Nuxeo PHP Client is a PHP client library for Nuxeo Rest API.
This is supported by Nuxeo and compatible with Nuxeo LTS 2015 and latest Fast Tracks.
Code
Requirements
Stuck with an old PHP version ? Have a look at v1.5, it offers limited but effective support and requires PHP 5.3+
Getting Started
Server
-
Download a Nuxeo server (the zip version)
-
Unzip it
-
Linux/Mac:
NUXEO_HOME/bin/nuxeoctl start
-
Windows:
NUXEO_HOME\bin\nuxeoctl.bat start
-
From your browser, go to
http://localhost:8080/nuxeo -
Follow Nuxeo Wizard by clicking 'Next' buttons, re-start once completed
-
Check Nuxeo correctly re-started
http://localhost:8080/nuxeo- username: Administrator
- password: Administrator
Library import
Download the latest build Nuxeo PHP Client main.
Composer:
"require": {
"nuxeo/nuxeo-php-client": "~2.0"
}
Usage
Creating a Client
The following documentation and samples applies for the 1.5 and newer versions. Calls to the Automation API for previous versions of the client will require adjustments.
For a given url:
$url = 'http://localhost:8080/nuxeo';
And given credentials:
use Nuxeo\Client\NuxeoClient; $client = new NuxeoClient($url, 'Administrator', 'Administrator');
Options
Options can be set on client or API objects. This ensure inheritance and isolation of options on the object whose options are applied. As it, the client gives its options to API objects.
// To define global schemas, global enrichers and global headers in general $client = $client->schemas("dublincore", "common") ->enrichers('document', ['acls'])
// For defining all schemas $client = $client->schemas("*");
// For changing authentication method use Nuxeo\Client\Auth\PortalSSOAuthentication; use Nuxeo\Client\Auth\TokenAuthentication; // PortalSSOAuthentication with nuxeo-platform-login-portal-sso $client = $client->setAuthenticationMethod(new PortalSSOAuthentication($secret, $username)); // TokenAuthentication $client = $client->setAuthenticationMethod(new TokenAuthentication($token)); // OAuth2Authentication // The PHP client doesn't implement OAuth2 authorization flow as // it depends completely on the architecture choices of your app. // To help understanding and implement, please find a sample SF4 app under intergation/oauth2. // Once the authorization flow is ready and you have an access token, // you can use the OAuth2Authentication in the PHP client: $client = $client->setAuthenticationMethod(new OAuth2Authentication($accessToken));
APIs
Automation API
To use the Automation API, Nuxeo\Client\NuxeoClient#automation() is the entry point for all calls:
// Fetch the root document $result = $client->automation('Repository.GetDocument')->param("value", "/")->execute(); // Type auto-detected and cast as Nuxeo\Client\Objects\Document
// Execute query $operation = $client->automation('Repository.Query')->param('query', 'SELECT * FROM Document'); $result = $operation->execute(); // Type auto-detected and cast as Nuxeo\Client\Objects\Documents
use Nuxeo\Client\Objects\Blob\Blob; use Nuxeo\Client\Objects\Blob\Blobs; // To upload|download blob(s) $fileBlob = Blob::fromFile('/local/file.txt', 'text/plain'); $blob = $client->automation('Blob.AttachOnDocument')->param('document', '/folder/file')->input($fileBlob)->execute(Blob::class); $inputBlobs = new Blobs(); $inputBlobs->add('/local/file1.txt', 'text/plain'); $inputBlobs->add('/local/file2.txt', 'text/plain'); $blobs = $client->automation('Blob.AttachOnDocument')->param('xpath', 'files:files')->param('document', '/folder/file')->input($inputBlobs)->execute(Blobs::class); $resultBlob = $client->automation('Document.GetBlob')->input('folder/file')->execute(Blob::class);
use Nuxeo\Client\Objects\Document; class MyBusinessClass extends Nuxeo\Client\Objects\Document { ... } // Unserialize document in a custom class $operation = $client->automation('Document.Fetch')->param('value', '0fa9d2a0-e69f-452d-87ff-0c5bd3b30d7d'); $result = $operation->execute(MyBusinessClass::class);
use Nuxeo\Client\Objects\Document; use Nuxeo\Client\Objects\Operation\DocRef; // Enforce type of a property $doc = $client->automation('Document.Fetch')->param('value', '0fa9d2a0-e69f-452d-87ff-0c5bd3b30d7d')->execute(Document::class); $property = $doc->getProperty('custom:related', DocRef::class);
Repository API
// Fetch the root document $document = $client->repository()->fetchDocumentRoot();
// Fetch document by path $document = $client->repository()->fetchDocumentByPath('/folders_2');
// Create a document $document = Objects\Document::create() ->setProperty('dc:title', 'Some title');
// Update a document $repository = $client->repository(); $document = $repository->fetchDocumentByPath('/note_0'); document->setPropertyValue("dc:title", "note updated"); $repository->updateDocumentByPath('/note_0', $document);
// Delete a document $client->repository()->deleteDocumentByPath('/note_2');
Users/Groups
// Get current user used to connect to Nuxeo Server /** @var \Nuxeo\Client\Objects\User\User $user */ $user = $client->userManager()->fetchCurrentUser();
// Create User $userManager->createUser((new User()) ->setUsername('my_login') ->setCompany('Nuxeo') ->setEmail('user@company.com') ->setFirstName('Thomas A.') ->setLastName('Anderson') ->setPassword('passw0rd'));
//Update user $userManager->updateUser($user);
//Attach user to group $userManager->attachGroupToUser('username', 'group_name'); $userManager->attachUserToGroup('group_name', 'username');
Workflows
// Fetch current user workflow tasks /** @var \Nuxeo\Client\Objects\Workflow\Tasks $tasks */ $tasks = $client->workflows()->fetchTasks();
Errors/Exceptions
The main exception type is Nuxeo\Client\Spi\NuxeoClientException and contains:
-
The HTTP error status code (666 for internal errors)
-
An info message
Docker
We provide a docker-compose.yml for quick testing
Just install docker-compose and run docker-compose up, you'll have a nuxeo running on http://localhost:9081/ and nginx on http://localhost:9080/
You can access the samples with http://localhost:9080/samples/B1.php for example.
Contributing / Reporting issues
We are glad to welcome new developers, and even simple usage feedback is great
- Ask your questions on http://answers.nuxeo.com/
- Report issues on this GitHub repository (see issues link on the right)
License
About Nuxeo
The Nuxeo Platform is an open source customizable and extensible content management platform for building business applications. It provides the foundation for developing document management, digital asset management, case management application and knowledge management. You can easily add features using ready-to-use addons or by extending the platform using its extension point system.
The Nuxeo Platform is developed and supported by Nuxeo, with contributions from the community.
Nuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.
nuxeo/nuxeo-php-client 适用场景与选型建议
nuxeo/nuxeo-php-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9.72k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2017 年 11 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「client」 「automation」 「nuxeo」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 nuxeo/nuxeo-php-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nuxeo/nuxeo-php-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nuxeo/nuxeo-php-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Command-line utility for Vtiger CRM.
Historical accounting for contacts
Mock PSR-18 HTTP client
Asynchronous MQTT client built on React
Extends Mautic Lead Bundle's Lead List (Segment) functionality.
A PHP code checks automation tool that can be used as git pre-commit hook.
统计信息
- 总下载量: 9.72k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 11
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2017-11-20