Skip to content

PHP ^7.4||^8.0 PSR-7 library for communication with Confluence

License

Notifications You must be signed in to change notification settings

notdefine/confluence-php-client

This branch is 2 commits ahead of, 17 commits behind CloudPlayDev/confluence-php-client:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Thomas Eimers
Aug 16, 2023
87b4fcd · Aug 16, 2023

History

49 Commits
Mar 10, 2023
Aug 15, 2023
Aug 16, 2023
Jun 23, 2021
Jun 23, 2021
Jun 21, 2021
Jun 23, 2021
Jun 23, 2021
Feb 25, 2023
Feb 25, 2023
Aug 16, 2023
Apr 14, 2022
Jun 22, 2021
Jun 21, 2021

Repository files navigation

Confluence PHP Client

CI Scrutinizer Code Quality

A Confluence RESTful API client in PHP

An Object Oriented wrapper for Confluence

Requirements

  • PHP >= 7.4.0

Installation

$ composer require cloudplaydev/confluence-php-client

Usage

Authentication

Using Personal Access Tokens

use CloudPlayDev\ConfluenceClient\ConfluenceClient;

$client = new ConfluenceClient('https://url-to-conluence');

//authenticate with a private access token
//@see https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html
$client->authenticate('NjU2OTA4NDI2MTY5OkBznOUO8YjaUF7KoOruZRXhILJ9');

Using BaseAuth

$client = new ConfluenceClient('https://USERNAME:PASSWORD@url-to-conluence');

or

use CloudPlayDev\ConfluenceClient\ConfluenceClient;

$client = new ConfluenceClient('https://url-to-conluence');
$client->authenticateBasicAuth('USERNAME', 'PASSWORD');

Fetch pages, comments and attachments

Find pages by title and space key

/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */


//Get the page we created
$searchResults = $client->content()->find([
    'spaceKey' => 'testSpaceKey',
    'title' => 'Test'
]);

//first page
$createdPage = $searchResults->getResultAt(0);

Fetch a page or comment by content id

/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */

//Get a page or comment
$resultContent = $client->content()->get(1234567890);

Fetch page descendants

use CloudPlayDev\ConfluenceClient\Api\Content;
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */
/* @var $page CloudPlayDev\ConfluenceClient\Entity\ContentPage */

//get child content
$childContent = $client->content()->children($page, Content::CONTENT_TYPE_PAGE); //\CloudPlayDev\ConfluenceClient\Entity\ContentSearchResult

Manipulating content

Create new page

use CloudPlayDev\ConfluenceClient\Entity\ContentPage;
/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */

//Create a confluence content page
$page = new ContentPage();

//Configure your page
$page->setSpace('testSpaceKey')
    ->setTitle('Test')
    ->setContent('<p>test page</p>');

//Create the page in confluence in the test space
$client->content()->create($page);

Create new comment

/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */

//get a page by id
$page = $client->content()->get(123456789);

//attach a comment to the page
$comment = $page->createComment('my comment text');

//save the comment
$client->content()->create($comment);

Create subpage

/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */

//get a page by id
$page = $client->content()->get(123456789);

//attach a subpage to page
$subPage = $page->createSubpage('subpage title', 'subpage content');

//save the page
$client->content()->create($subPage);

Update content

/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */

//get content by id
$page = $client->content()->get(123456789);

//change content
$page->setContent('new content')
    ->setTitle('new title');

//save the changes
$client->content()->update($page);

Delete content

/* @var $client CloudPlayDev\ConfluenceClient\ConfluenceClient */

//get content by id
$page = $client->content()->get(123456789);

//delete content
$client->content()->delete($page);

About

PHP ^7.4||^8.0 PSR-7 library for communication with Confluence

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%