Wallogit.com
2017 © Pedro PelΓ‘ez
ΠΠ΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ PHP SDK Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊ, (*1)
27/12/2018 * ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ api * ΡΠΏΡΠ°ΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ SDK * ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ README, (*2)
composer require leonied7/yandex-disk-api:dev-master
ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:, (*3)
require_once __DIR__ . "/vendor/autoload.php";
ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ² ΠΈΠ· ΠΊΠΎΡΠ½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:, (*4)
vendor/phpunit/phpunit/phpunit --configuration phpunit.xml
SDK Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ WebDAV API Π―Π΄Π½Π΅ΠΊΡ ΠΠΈΡΠΊΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ OAuth-ΡΠΎΠΊΠ΅Π½(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, AQACc1234LDE2f_123UIbouFHzfxxcvDI), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ: * Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ https://oauth.yandex.ru/, (*5)
OAuth-ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΏΡΠ°Π²Π° "Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊ WebDAV API", (*6)
use \Leonied7\Yandex\Disk;
$yandexDisk = new Disk('OAuth-ΡΠΎΠΊΠ΅Π½');
\Leonied7\Yandex\Disk - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΡΠΊΠΎΠΌ, Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΈΡΠΊΠ΅ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ\Leonied7\Yandex\Disk\Item\File - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ
php
/** @var \Leonied7\Yandex\Disk\Item\File $file */
$yandexDisk->file('/path/to/file/');
\Leonied7\Yandex\Disk\Item\Directory - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ
php
/** @var \Leonied7\Yandex\Disk\Item\Directory $directory */
$directory = $yandexDisk->directory('/path/to/directory/');
\Leonied7\Yandex\Disk\Entity\Result - ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, (*7)
\Leonied7\Yandex\Disk\Entity\Collection, (*8)
\Leonied7\Yandex\Disk\Model\Property, (*9)
\Leonied7\Yandex\Disk\Item\Item, (*10)
$info = $yandexDisk->getInfo();
//Π²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
Array
(
[uid] => xxxxxxxxx
[login] => login
[fio] => fio
[firstname] => firstname
[lastname] => lastname
[upload_concurrency] => 5
[datasync_db_prefix] =>
[is_b2b] => false
)
/** @var \Leonied7\Yandex\Disk\Collection\PropertyCollection $spaceCollection */
$spaceCollection = $yandexDisk->spaceInfo();
//ΠΏΠΎΠΈΡΠΊ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅Π½Π΅ΠΌ 'quota-available-bytes'
/** @var \Leonied7\Yandex\Disk\Property\Immutable $available */
$available = $spaceCollection->find('quota-available-bytes');
echo $available->getValue(); //ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠ°
/** @var \Leonied7\Yandex\Disk\Property\Immutable $used */
$used = $spaceCollection->find('quota-used-bytes');
echo $used->getValue(); //Π·Π°Π½ΡΡΠΎΠ΅ ΠΌΠ΅ΡΡΠ°
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->upload(new Disk\Stream\File('/path/to/local/file', Disk\Stream\File::MODE_READ)); //bool
SDK ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: 1. ΠΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅, (*11)
```php
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->download(new Disk\Stream\File('/path/to/local/file', Disk\Stream\File::MODE_WRITE)); //bool
```
2. ΠΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΡΠΌΠΈ, (*12)
```php
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
//ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΡΡ
5 Π±Π°ΠΉΡ
$file->download(new Disk\Stream\File('/path/to/local/file', Disk\Stream\File::MODE_WRITE), 0, 5); //bool
//ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Ρ 6 Π±Π°ΠΉΡΠ° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°
$file->download(new Disk\Stream\File('/path/to/local/file', Disk\Stream\File::MODE_WRITE_APPEND), 6); //bool
```
3. Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΠΎΡΠΎΠΊΠ°, (*13)
```php
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->download(); //bool
// ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π·Π°ΠΏΡΠΎΡΠ°
$result = Disk\Collection\ResultList::getInstance()->getLast();
file_put_contents('/path/to/local/file', $result->getActualResult());
```
ΠΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠ΅Π²ΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, (*14)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->getPreview('S', new Disk\Stream\File('/path/to/local/file/', Disk\Stream\File::MODE_WRITE));
ΠΡΠ΅Π²ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Π»ΠΈΠ±ΠΎ Π±Π΅Π· ΠΏΠΎΡΠΎΠΊΠ°, (*15)
/** @var Disk\Item\Directory $directory */
$directory = $yandexDisk->directory('/path/to/directory/');
$directory->create(); // bool
/** @var Disk\Item\Directory $directory */
$directory = $yandexDisk->directory('/path/to/directory/');
/** @var Disk\Item\Item[] $arChild */
$arChild = $directory->getChildren();
/** @var Disk\Item\Item $child */
foreach ($arChild as $child) {
if ($child->isDirectory()) {
/** @var Disk\Item\Directory $directory */
$directory = $child;
//ΡΠ°Π±ΠΎΡΠ° Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ
} else {
/** @var Disk\Item\File $file */
$file = $child;
//ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ
}
}
Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° \Leonied7\Yandex\Disk\Collection\PropertyCollection Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²., (*16)
Π’Π°ΠΊ ΠΆΠ΅ 2 ΠΈ 3 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ offset(ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅) ΠΈ amount(ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ) - Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠΎΠ·ΠΎΠ½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²., (*17)
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*18)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->has(); // bool
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ²ΠΎΠΉΡΡΠ², ΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊ ΠΎΡΠ΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π°
has()ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° \Leonied7\Yandex\Disk\Collection\PropertyCollection., (*19)
ΠΡΠΈΠΌΠ΅Ρ:, (*20)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$collection = new Disk\Collection\PropertyCollection();
$collection
->add('getcontenttype', Disk\Model\Property::IMMUTABLE_NAMESPACES['dav']) //Π·Π°ΠΏΡΠΎΡ ΡΠΈΠΏΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ
->add('displayname', Disk\Model\Property::IMMUTABLE_NAMESPACES['dav']) //Π·Π°ΠΏΡΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ
->add('myprop', 'mynamespace'); //ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°
$file->has($collection); // bool
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ, ΡΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ., (*21)
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΈΡΠ΅Π΄ΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:, (*22)
/** @var Disk\Collection\PropertyCollection $collection */ $collection = $file->getProperties();
ΠΈΠ»ΠΈ, (*23)
/** @var Disk\Collection\PropertyCollection $collection */ $collection1 = Disk\Collection\ResultList::getInstance()->getLast()->getResult();
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°., (*24)
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², (*25)
/** @var Disk\Collection\PropertyFail[] $failCollections */
$failCollections = Disk\Collection\ResultList::getInstance()->getLast()->getDecorateResult(new Disk\Decorator\CurrentElementFailCollection($file->getPath()));
foreach ($failCollections as $failCollection) {
$failCollection->getStatus(); //ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
//ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠΎ ΠΈ Π΄Π»Ρ Disk\Property\Immutable
}
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*26)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->copy('/path/to/copy/'); // bool
ΠΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½. ΠΠ»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ
false, (*27)
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*28)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->move('/path/to/move/'); // bool
ΠΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½. ΠΠ»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ
false, (*29)
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*30)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->delete(); // bool
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*31)
/** @var \Yandex\Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
//ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² Π½Π΅Ρ 3 ΡΠ²ΠΎΠΉΡΡΠ²Π°
$propertyCollection = new \Yandex\Disk\Collection\Property();
$propertyCollection
->add('myprop', 'mynamespace')
->add('propmy', 'mynamespace')
->add('propprop', 'mynamespace');
/** @var \Yandex\Disk\Collection\Property $loadCollection */
$loadCollection = $file->loadProperties($propertyCollection);
/** @var \Yandex\Disk\Collection\Property $property */
foreach ($loadCollection as $property) {
// ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ
}
Π Π°Π½Π΅Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
$file->getProperties();, (*32)Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°., (*33)
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², (*34)
/** @var \Yandex\Disk\Collection\PropertyFail[] $convertedResult */
$failCollections = $file->getLastResult()->getDecorateResult(new \Yandex\Disk\Decorator\CurrentElementFailCollection($file->getPath()));
foreach ($failCollections as $failCollection) {
$failCollection->getStatus() //ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊΠ°
}
ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ \Leonied7\Yandex\Disk\Collection\PropertyFail, (*35)
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*36)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
/** @var Disk\Collection\PropertyCollection $propertyCollection */
$propertyCollection = $file->getExistProperties();
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!!! ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π±Π΅Π· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΡΠ΅ΡΠ΅Π·
$file->getProperties();, (*37)
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*38)
ΠΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°: 1. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², (*39)
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π° `myprop` ΠΈ `propmy` Ρ namespace `mynamespace` Π·Π½Π°ΡΠ΅Π½ΠΈΡ `foo` ΠΈ `bar` ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π£Π΄Π°Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ `propprop`
```php
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$propertyCollection = new Disk\Collection\PropertyCollection();
$propertyCollection
->add('myprop', 'mynamespace', 'foo')
->add('propmy', 'mynamespace', 'bar')
->add('propprop', 'mynamespace');
$file->changeProperties($propertyCollection); // bool
```
2. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ², (*40)
> ΠΠ΅ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π° `myprop`, `propmy`, `propprop`, `quota-available-bytes`
```php
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$propertyCollection = new Disk\Collection\PropertyCollection();
$propertyCollection
->add('myprop', 'mynamespace')
->add('propmy', 'mynamespace')
->add('quota-available-bytes', Disk\Model\Property::IMMUTABLE_NAMESPACES['dav'])
->add('propprop', 'mynamespace');
/** @var Disk\Collection\PropertyCollection $loadCollection */
$loadCollection = $file->loadProperties($propertyCollection);
```
Π Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π²ΡΡ
Π²ΠΈΠ΄ΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΈ Π½Π΅ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅
> Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² Π―Π½Π΄Π΅ΠΊΡ.ΠΠΈΡΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ `quota-available-bytes` Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
```php
/** @var Disk\Property\Mutable $property */
foreach ($loadCollection->getChangeable() as $property) {
$property->setValue('baz'); //ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
}
```
> Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉΡΠ²ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° `canChanged()`
```php
// Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ
$loadCollection->add('newprop', 'mynamespace', 'bar');
// Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² (ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡ)
$loadCollection->add('immutable', Disk\Model\Property::IMMUTABLE_NAMESPACES['dav'], 'immut');
```
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
```php
$file->saveProperties();
```
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*41)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->startPublish(); // bool
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ
Disk\Collection\ResultList::getInstance()->getLast()->getResult(); // string
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*42)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->stopPublish(); // bool
ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π΄Π»Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, (*43)
/** @var Disk\Item\File $file */
$file = $yandexDisk->file('/path/to/file/');
$file->checkPublish(); // bool
//ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ
Disk\Collection\ResultList::getInstance()->getLast()->getResult(); // string