1. Go to this page and download the library: Download arhitector/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/ */
arhitector / 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);
// открыть любой дескриптор
$fp = fopen(__DIR__.'/файл.txt', 'wb+');
// или и т.д.
$fp = fopen('php://memory', 'r+b');
// true - провести проверку целостности скачанного файла
$publicResource->download($fp, false, true);
// продолжить работу ...
fseek($fp, 0);
$stream = new Stream('php://temp', 'r+');
$publicResource->download($stream);
var_dump($stream->getSize());
$resource->addListeners();
use Arhitector\Yandex\Disk;
use Arhitector\Yandex\Disk\Resource\Closed;
use League\Event\Event;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\StreamInterface;
// ...
$disk->addListener('uploaded', function (Event $event, Closed $resource, Disk $disk, StreamInterface $uploadedStream, ResponseInterface $response) {
// $event - событие
// $resource - тоже самое что и $resource
// $disk - клиент
// $uploadedStream - в данном примере файл file_path.pdf обернутый в Stream
// $response - Ответ от Я.Диска. $response->getBody() - не содержит ничего (см. документацию API Я.Диска)
});
// ...
$resource->upload(__DIR__.'/file_path.pdf');
if ($arg === true)
{
// некоторый код
}
elseif ($arg === null)
{
// некоторый код
}
else
{
// некоторый код
}
foreach ($array as $key => $value)
{
// некоторый код
}
for ($i = 0; $i < $max; $i++)
{
// некоторый код
}
while ($i < $max)
{
// некоторый код
}
do
{
// некоторый код
}
while ($i < $max)
switch ($var)
{
case 'value1':
// некоторый код
break;
default :
// некоторый код
break;
}
if ($var == false and $other_var != 'some_value')
if ($var === false or my_function() !== false)
if ( ! $var)
public void Client::__construct([string $token = null])
$client = new Client();
$client = new Client('0c4181a7c2cf4521964a72ff57a34a07');