1. Go to this page and download the library: Download s00d/yandex library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
s00d / yandex example snippets
// передать OAuth-токен зарегистрированного приложения.
$disk = new Arhitector\Yandex\Disk('OAuth-токен');
/**
* Получить Объектно Ориентированное представление закрытого ресурса.
* @var Arhitector\Yandex\Disk\Resource\Closed $resource
*/
$resource = $disk->getResource('новый файл.txt');
// проверить сущестует такой файл на диске ?
$resource->has(); // вернет, например, false
// загрузить файл на диск под имененм "новый файл.txt".
$resource->upload(__DIR__.'/файл в локальной папке.txt');
// файл загружен, вывести информацию.
var_dump($resource->toArray())
// теперь удалить в корзину.
$removed = $resource->delete();
try
{
try
{
/**
* Получить закрытый ресурс
* @var Arhitector\Yandex\Disk\Resource\Closed $resource
*/
$resource = $disk->getResource('новый файл.txt');
// До этого момента запросов к Диску не было
// Только сейчас был сделан запрос на получение информации о ресурсе к Яндекс.Диску
// Вывести информацию. Когда ресурс не найден будет вызвано исключение NotFoundException
$resource->toArray();
}
catch (Arhitector\Yandex\Client\Exception\NotFoundException $exc)
{
// Ресурс на Диске отсутствует, загрузить под именем 'новый файл.txt'
$resource->upload(__DIR__.'/файл в локальной папке.txt');
}
// Теперь удалю, совсем.
$file->delete(true);
}
catch (Arhitector\Yandex\Client\Exception\UnauthorizedException $exc)
{
// Записать в лог, авторизоваться не удалось
log($exc->getMessage());
}
catch (Exception $exc)
{
// Что-то другое
}
$client = new Arhitector\Yandex\Client\OAuth('OAuth-токен');
$disk = new Arhitector\Yandex\Disk($client);
$disk = new Arhitector\Yandex\Disk('OAuth-токен');
$disk->total_space; // объём диска
$resource->size; // размер файла
$disk['free_space']; // свободное место
$resource['name']; // название файла/папки
public mixed Объект::get(string $index [, mixed $default = null])
// индекс total_space
$disk->get('total_space');
// custom_properties или FALSE если отсутствует
$resource->get('custom_properties', false);
// вернёт результат 'any thing' анонимной функции
$removedResource->get('property_123', function (Removed $resource) {
return 'any thing';
});
public array Объект::toArray([array $allowed = null])
// массив информация о Яндекс.Диске
$disk->toArray();
// получить только
$disk->toArray(['total_space', 'free_space']);
// массив объектов
$collection->toArray();
// массив, информация о ресурсе
$resource->toArray();
public stdClass Объект::toObject([array $allowed = null])
public mixed Closed::getProperty(string $index [, mixed $default = null])
$resource->getProperty('any');
$resource->get('thing12141', 'значение по умолчанию'); // вернет значение по умолчанию
$resource->get('index', function (Resource\Closed $resource) {
// анонимная функция будет вызвана с параметром
// текущего контекста и значение по умолчанию
// будет значение, возвращаемое этой функцией
return 'значение по умолчанию';
});
public array Closed::getProperties( void )
$resource->getProperties(); // array
// метод 'get' также может получать метаинформацию.
// получить всю доступную метаинформацию в виде массива
$resource->get('custom_properties', []);
// получение информации без использования метода 'getProperty'
$resource->get('custom_properties')['thing12141']
public mixed delete([bool $permanently = false])
$resource->delete(); // в корзину
$resource->delete(true); // удалить без помещения в корзину
public mixed Closed::move(mixed $destionation [, $overwrite = FALSE] )
public mixed Closed::setPublish([bool $publish = true])
$resource->setPublish(); // открывает доступ
$resource-setPublish(true); // открывает доступ
$resource->setPublish(false); // закрывает доступ
$resource->isPublish(); // true если ресурс с открытым доступом
$resource->public_url; // URL адрес
public bool Closed::download(mixed $destination [, bool $overwrite = false])
// без перезаписи
$resource->download(__DIR__.'/файл.txt');
// без перезаписи
$resource->download(__DIR__.'/файл.txt', false);
// с перезапсью
$resource->download(__DIR__.'/файл.txt', true);
// открыть любой дескриптор
$fp = fopen(__DIR__.'/файл.txt', 'wb+');
// или и т.д.
$fp = fopen('php://memory', 'r+b');
$resource->download($fp);
// продолжить работу ...
fseek($fp, 0);
$stream = new Stream('php://temp', 'r+');
$resource->download($stream);
var_dump($stream->getSize());
public bool Closed::copy(mixed $destination [,bool $overwrite = false])
// сделать копию файла
$resource->copy('папка/файл-копия.txt');
// сделать копию папки
$resource->copy('app:/папка-копия');
// сделать копию $resource по пути 'копия/путь до файла.txt'
$resource2 = $disk->getResource('копия/путь до файла.txt');
$resource->copy($resource2, true);