PackageTrack
Sign in Get early access

vgrem/php-spo

PHP Office 365 library. It allows to performs CRUD operations against Office 365 resources via an REST/OData based API

v3.2.0 1.6M downloads/mo #3706 most downloaded on Packagist vgrem/phpSPO

What this package is like to depend on

Last release 1 years ago

17 Aug 2025

Release timing varies

gaps range from 6 weeks to 1.3 years

Some releases are documented

notes for 10 of 29 stable releases

Nothing withdrawn

no release was ever pulled

9 years old

29 releases · first in 2017

0 releases in the last 12 months

see the full history below

Release timeline

29 releases · Apr 2017 to Aug 2025
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 29
  1. v3.2.0 17 Aug 2025
    Release notes

    Changelog

    New Features

    • Planner API: Enhanced support for Microsoft Graph Planner API

    Fixes & Improvements

    • PR #352: Fix OneDrive file upload session retry logic (by @it-can)
    • PR #350: Improve error handling for SharePoint API requests (by @VincentFoulon80)
    • PR #348: Fix metadata handling in file uploads (by @JensDeMuynck)
    • PR #129: Fix OneDrive large file upload session
    Open source →
    Release notes

    Added

    • Planner API: Enhanced support for Microsoft Graph Planner API

    Fixed

    • #352: Fix OneDrive file upload session retry logic (by @it-can)
    • #350: Improve error handling for SharePoint API requests (by @VincentFoulon80)
    • PR #348: Fix metadata handling in file uploads (by @JensDeMuynck)
    • PR #129: Fix OneDrive large file upload session
    Open source →
  2. v3.1.2 21 Apr 2024
    Release notes

    Added

    • GraphServiceClient::withUserCredentials and GraphServiceClient::withClientSecret methods introduced

    Fixed

    • #337: Don't try to retrieve next set of items when using an iterator, if no next items are expected to exist
    Open source →
    Release notes

    Added

    • GraphServiceClient::withUserCredentials and GraphServiceClient::withClientSecret methods introduced

    Fixed

    • #337: Don't try to retrieve next set of items when using an iterator, if no next items are expected to exist
    Open source →
  3. v3.1.1 30 Sep 2023
    Release notes

    Changelog

    • SharePoint model updated to 16.0.24106.12014 version
    • import fixes (patches for 3.1.0 version)
    Open source →
  4. v3.1.0 29 Sep 2023
    Release notes

    Changelog

    • support for authenticate SharePoint API via client certificate flow
    • validate access token response in GraphServiceClient

    Example: how to authenticate SharePoint API via client certificate flow

    $siteUrl = "https://contoso.sharepoint.com";  //site or web absolute url 
    $tenant = "contoso.onmicrosoft.com"; //tenant id or name
    $thumbprint = "--thumbprint goes here--";
    $clientId = "--client app id goes here--";
    $privateKetPath = "-- path to private.key file--"
    $privateKey = file_get_contents($privateKetPath);
    
    $ctx = (new ClientContext($siteUrl))->withClientCertificate(
        $tenant, $clientId, $privateKey, $thumbprint);
    
    $whoami = $ctx->getWeb()->getCurrentUser()->get()->executeQuery();
    print $whoami->getLoginName();
    Open source →
  5. v3.0.3 15 Jul 2023
    Release notes

    Changelog

    • support for document sets in SharePoint API
    • fix addering issue with web resource

    Example: create a Document Set

    $credentials = new ClientCredential($clientId, $clientSecret);
    $client = (new ClientContext($siteUrl))->withCredentials($credentials);
    
    $docSetName = "Orders"; 
    $lib = $client->getWeb()->defaultDocumentLibrary();
    $docSet = DocumentSet::create($client, $lib->getRootFolder(), $docSetName)->executeQuery();
    print($docSet->getProperty("ServerRelativeUrl"));
    Open source →
    Release notes

    Added

    • SharePoint document set support

    Fixed

    • Fix SharePoint upload with small files (#328)
    • SharePoint web resource URL computation
    Open source →
  6. v3.0.2 03 Mar 2023
    Release notes

    Changelog

    • #325 PR: fix composer autoload issue by @menegain-mathieu
    Open source →
    Release notes

    Fixed

    • Autoloading for SharePoint/Publishing/ classes
    • Fix OneDrive createFolder()
    Open source →
  7. v3.0.1 21 Jan 2023
    Release notes

    Changelog

    • #300: add CcRecipients property to Message class by @DavidBrogli
    • #304: Http Response improvements by @lbuchs
    • #307 add example to obtain available fields of a list by @cweiske
    • #318 Support for custom curl options by @drml
    • ClientObjectCollection class enhancements, introduced getAll method by @vgrem

    Example: read list items in a large list via getAll method:

    $ctx = (new ClientContext($siteUrl))->withCredentials($credentials);
    $list = $ctx->getWeb()->getLists()->getByTitle("--large list title--");
    
    $allItems = $list->getItems()->getAll(5000, function ($returnType){
        print("{$returnType->getPageInfo()} items loaded...\n");
    })->executeQuery();
    Open source →
    Release notes

    Breaking

    • ClientObjectCollection::get() only returns a limited set of data. Use getAll() now instead.

    Added

    • Update SharePoint models to version 16.0.22921.12007
    • Update SharePoint models to version 16.0.23207.12005
    • Add CC recipients in outlook messages (#300)
    • New functions in Http\Response (#304)
    • SharePoint/Field::enableIndex() method
    • SharePoint/ClientContext::getGroupSiteManager(), ::getPeopleManager(), ::getSiteManager(), ::getSearch() and getTaxonomy()
    • SharePoint/Search/SearchService::export()
    • Example for obtaining fields of a list (#307)
    • Example to list all lists (#316)
    • Examples to read large lists, update list items and create indexes

    Fixed

    • Sending mails with attachments (#301)
    • Option merging in Http\Requests::setDefaultOptions (#319)

    Removed

    • Http\Requests::execute() $headers parameter (#304)
    • state from ClientRequest
    Open source →
  8. v3.0.0 07 Oct 2022
    Release notes

    Changelog

    • #283: exception handling enhancements for authentication requests by @SuperDJ
    • #286: introduced client secret support for acquireTokenForPassword method in AADTokenProvider class by @R-TECH
    • #287 and #288: captures and validates if response failed by @fr3nch13
    • #297: remove minimum-stability from composer.json by @cweiske
    • #298 and #299: deprecation fixes for PHP 8 and drop PHP 5.5 requirement by @cweiske
    Open source →
    Release notes

    Breaking

    • Support for PHP version < 7.1.0

    Added

    • Support for confidential clients (#286)
    • Throw exception on outdated client credentials (#283)

    Fixed

    • Fix deprecations on PHP 8 (#298)
    • Validate each individual server response (#287)
    • Do not throw exception on all 4xx responses (#288)
    Open source →
  9. v2.5.4 07 Jul 2022
    Release notes

    Changelog

    Open source →
  10. v2.5.3 05 Feb 2022
    Release notes

    Changelog

    • SharePoint API: improved support for composite field values namely FieldLookupValue/FieldMultiLookupValue, FieldMultiChoiceValue , refer example 1 below ( related issues: #261)
    • OData request/response serialization optimizations (namely excluding metadata annotations from response by default)

    Example : create list item and specify multi lookup & choice fields values:

    $list = $ctx->getWeb()->getLists()->getByTitle("Tasks");
    
    $taskProps = array(
        'Title' => "New task",
        'ParentTask' => new FieldLookupValue($taskLookupId),
        'PrimaryManager' => new FieldUserValue($userId),
        'Managers' => new FieldMultiLookupValue([$userId]),
        'TaskCategories' => new FieldMultiChoiceValue(["Event", "Reminder"])
    );
    $item = $list->addItem($taskProps)->executeQuery();
    Open source →
  11. 2.5.2 09 Oct 2021

    Nothing published for this version

  12. 2.5.1 22 Aug 2021

    Nothing published for this version

  13. v2.5.0 15 May 2021

    Nothing published for this version

  14. v2.4.5 06 May 2021

    Nothing published for this version

  15. v2.4.4 12 Mar 2021

    Nothing published for this version

  16. v2.4.3 14 Nov 2020

    Nothing published for this version

  17. v2.4.2 19 Aug 2020

    Nothing published for this version

  18. v2.4.1 21 May 2020

    Nothing published for this version

  19. v2.4.0 24 Apr 2020

    Nothing published for this version

  20. v2.3.1 16 Nov 2019

    Nothing published for this version

  21. v2.3.0 20 Oct 2019

    Nothing published for this version

  22. v2.2.5 19 Sep 2019

    Nothing published for this version

  23. v2.2.4 03 Jul 2019

    Nothing published for this version

  24. v2.2.3 12 Mar 2019

    Nothing published for this version

  25. v2.2.2 27 Oct 2018

    Nothing published for this version

  26. v2.2.1 04 Aug 2018

    Nothing published for this version

  27. v2.2.0 17 Jul 2018

    Nothing published for this version

  28. v2.1.9 29 Jun 2018

    Nothing published for this version

  29. v2.1.8 20 Apr 2017

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive