Я использовал это в API для соединения моего веб-приложения PHP с SharePoint и передачи данных из PHP в SharePoint, для меня это работало на 100%:
Инструкция по применению :
Установка
Загрузите файл WSDL для списков SharePoint, с которыми вы хотите взаимодействовать. Обычно это можно получить по адресу: sharepoint.url/subsite/_vti_bin/Lists.asmx?WSDL
Если вы используете composer, просто добавьте thybag / php-sharepoint-lists-api в ваш composer.json и запустите composer.
{
"require": {
"thybag/php-sharepoint-lists-api": "dev-master"
}
}
Если вы не используете composer, вы можете загрузить копию файлов API SharePoint вручную и включить в свой проект верхний класс «SharePointAPI.php».
Создание объекта SharePointAPI
Чтобы использовать API списков PHP SharePoint, вам потребуется действительная учетная запись пользователя / службы с разрешениями на требуемый список.
Для большинства установок SharePoint вы можете создать новый экземпляр API, используя:
use Thybag\SharePointAPI;
$sp = new SharePointAPI('', '', '');
Если для вашей установки требуется NTLM-аутентификация, вы можете вместо этого использовать:
use Thybag\SharePointAPI;
$sp = new SharePointAPI('', '', '', 'NTLM');
Пользователи SharePoint Online должны использовать:
use Thybag\SharePointAPI;
$sp = new SharePointAPI('', '', '', 'SPONLINE');
Все методы возвращают массив по умолчанию. SetReturnType может использоваться, чтобы указать, что результаты должны быть возвращены как объекты.
Чтение из списка.
Чтобы вернуть все элементы из списка, используйте
$sp->read('');
or
$sp->query('')->get();
Чтобы вернуть только первые 10 элементов из списка, используйте:
$sp->read('', 10);
* * Или тысяча сорок-девять
$sp->query('')->limit(10)->get();
Чтобы вернуть все элементы из списка, где фамилия - кузнец, используйте:
$sp->read('', NULL, array('surname'=>'smith'));
или
$sp->query('')->where('surname', '=', 'smith')->get();
Запрос списка
Метод запроса можно использовать, когда необходимо указать сложный запрос, который можно легко определить с помощью методов чтения. Запросы строятся с использованием ряда (надеюсь, выразительных) методов псевдо SQL.
Если вы, например, хотели запросить список домашних животных и вернуть всех собак младше 5 лет (отсортированных по возрасту), которые вы могли бы использовать.
$sp->query('list of pets')->where('type','=','dog')->and_where('age','sort('age','ASC')->get();
Если вы хотите получить первых 10 животных, которые были кошками или хомяками, вы можете использовать:
$sp->query('list of pets')->where('type','=','cat')->or_where('type','=','hamster')->limit(10)->get();
Если вам нужно вернуть 5 предметов, но включая все поля, содержащиеся в списке, вы можете использовать. (передать false всем_полям, чтобы включить скрытые поля).
$sp->query('list of pets')->all_fields()->get();
Если у вас есть набор CAML для конкретного расширенного запроса, который вы хотите выполнить, вы можете передать его объекту запроса с помощью:
$sp->query('list of pets')->raw_where('Hello World')->limit(10)->get();
Добавление в список
Чтобы добавить новый элемент в список, вы можете использовать метод «write», «add» или «insert» (все функции идентичны). Создание новой записи в списке с именами столбцов, фамилией, возрастом и телефоном может выглядеть следующим образом:
$sp->write('', array('forename'=>'Bob','surname' =>'Smith', 'age'=>40, 'phone'=>'(00000) 000000' ));
Вы также можете запустить несколько операций записи, используя:
$sp->writeMultiple('', array(array('forename' => 'James'),array('forename' => 'Steve')));
Редактирование строк
Для редактирования строки вам необходимо иметь ее идентификатор. Предполагая, что в приведенном выше ряду указан идентификатор 5, мы можем изменить имя Боба на Джеймса с помощью:
<code> $sp->update('','5', array('forename'=>'James'));/code>
Как и в случае метода записи, вы также можете запустить несколько операций обновления, используя:
$sp->updateMultiple('', array( array('ID'=>5,'job'=>'Intern'),array('ID'=>6,'job'=>'Intern')));
При использовании updateMultiple каждый элемент ДОЛЖЕН иметь идентификатор.
Удаление строк
Для удаления строки требуется идентификатор, а также имя списка. Чтобы удалить запись для Джеймса с идентификатором 5, вы должны использовать:
$sp->delete('', '5');
Если вы хотите удалить несколько записей одновременно, массив идентификаторов также может быть передан в несколько методов удаления
$sp->deleteMultiple('', array('6','7','8'));
Вспомогательные методы
PHP SharePoint API содержит несколько вспомогательных методов, облегчающих проверку определенных значений в правильном формате для некоторых специальных типов данных SharePoint.
DATETIME
В метод DateTime можно передать текстовую дату
$date = \Thybag\SharepointApi::dateTime("2012-12-21");
Или метка времени Unix
$date = \Thybag\SharepointApi::dateTime(time(), true);
Поиск и устранение неисправностей
Невозможно найти упаковщик "https"
Если вы получаете эту ошибку, это обычно означает, что php_openssl (необходим для скручивания URL-адресов https) не включен на вашем веб-сервере.На многих локальных веб-серверах (таких как XAMPP) вы можете просто открыть файл php.ini и раскомментировать строку php_openssl (т.е. удалить; перед ней).
Примечание. Если вы используете SharePoint Online и у вас естьОшибки SSL. Извлеките последнюю версию, которая была изменена с SSL v3 на TLS для сетевых подключений SharePoint.
Добавьте эту строку в файл composer.json
thybag/php-sharepoint-lists-api: dev-develop</code>
Вы можете выполнить CRUD (Операция создания / чтения / обновления / удаления с указанным выше API-интерфейсом SharePoint.
Ссылочная URL-ссылка: https://github.com/thybag/PHP-SharePoint-Lists-API