tigusigalpa / yandex-disk-php
PHP SDK for Yandex Disk API integration
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/tigusigalpa/yandex-disk-php
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^10.0
README
π Π―Π·ΡΠΊ: Π ΡΡΡΠΊΠΈΠΉ | English
ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ PHP SDK Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Yandex Disk API. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΡΡΡΠΉ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ Π½Π° Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΊΠ΅ Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ΠΌ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ API.
π Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ API
| ΠΠ΅ΡΠΎΠ΄ | ΠΠ½Π΄ΠΏΠΎΠΈΠ½Ρ | ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|---|
getAuthorizationUrl() |
- | OAuth Guide | ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ URL Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ OAuth |
getCapacity() |
GET / |
Disk Info | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΈΡΠΊΠ΅ |
getMeta() |
GET /resources |
Metadata | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠ° |
addMeta() |
PATCH /resources |
Add Metadata | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ |
getAllFiles() |
GET /resources/files |
All Files | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»ΠΎΡΠΊΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² |
getRecentUploads() |
GET /resources/last-uploaded |
Recent Uploads | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² |
getRecentPublished() |
GET /resources/public |
Published Files | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² |
createFolder() |
PUT /resources |
Create Folder | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ |
uploadFile() |
GET /resources/upload |
Upload File | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π° |
uploadFromUrl() |
POST /resources/upload |
Upload from URL | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° |
downloadFile() |
GET /resources/download |
Download File | Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° |
copy() |
POST /resources/copy |
Copy Resource | ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°/ΠΏΠ°ΠΏΠΊΠΈ |
move() |
POST /resources/move |
Move Resource | ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°/ΠΏΠ°ΠΏΠΊΠΈ |
delete() |
DELETE /resources |
Delete Resource | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°/ΠΏΠ°ΠΏΠΊΠΈ |
publish() |
PUT /resources/publish |
Publish Resource | ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠ° |
unpublish() |
PUT /resources/unpublish |
Unpublish Resource | ΠΡΠΌΠ΅Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠ° |
getAvailablePublicSettings() |
GET /public/resources/public-settings/available |
Available Settings | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ |
getPublicSettings() |
GET /public/resources/public-settings |
Public Settings | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΅ΡΡΡΡΠ° |
changePublicSettings() |
PUT /resources/public |
Change Settings | ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ |
getPublicResourceMeta() |
GET /public/resources |
Public Metadata | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° |
downloadPublicResource() |
GET /public/resources/download |
Download Public | Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° |
savePublicResource() |
POST /public/resources/save |
Save Public Resource | Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° |
getTrash() |
GET /trash/resources |
Trash List | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΡΠ·ΠΈΠ½Ρ |
restoreFromTrash() |
PUT /trash/resources/restore |
Restore from Trash | ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡΠ·ΠΈΠ½Ρ |
clearTrash() |
DELETE /trash/resources |
Clear Trash | ΠΡΠΈΡΡΠΊΠ° ΠΊΠΎΡΠ·ΠΈΠ½Ρ |
getOperationStatus() |
GET /operations/{id} |
Operation Status | ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ |
getPublicResourcesOwnedByUser() |
GET /public/resources/admin/public-resources |
Owned Resources | ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ: ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ |
getPublicResourcesAccessedByUser() |
GET /public/resources/admin/accessible-resources |
Accessible Resources | ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ: Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΡΡΡΡΡ |
unpublishUserResource() |
PUT /public/resources/admin/unpublish |
Admin Unpublish | ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ: ΠΎΡΠΌΠ΅Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠ° |
π ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ OAuth-ΡΠΎΠΊΠ΅Π½Π°
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Yandex Disk API Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ OAuth-ΡΠΎΠΊΠ΅Π½. Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ:
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π―Π½Π΄Π΅ΠΊΡ OAuth
- ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ Π½Π° Π―Π½Π΄Π΅ΠΊΡ OAuth: https://oauth.yandex.ru/
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "+ Π‘ΠΎΠ·Π΄Π°ΡΡ"
- ΠΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ "ΠΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ?" ΡΠΊΠ°ΠΆΠΈΡΠ΅ "ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ" ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ "ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ"
- ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΎΡΠΌΡ:
- ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°: Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΡΡΠ° Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ: ΠΠ°Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ email
- ΠΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ: ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠ°Π²Π°:
cloud_api:disk.writeβ ΠΠ°ΠΏΠΈΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π½Π° ΠΠΈΡΠΊΠ΅cloud_api:disk.readβ Π§ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΠΈΡΠΊΠ°cloud_api:disk.app_folderβ ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΠΈΡΠΊΠ΅cloud_api:disk.infoβ ΠΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΠΈΡΠΊΠ΅
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Π°ΠΌ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ:
- ClientID β ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ OAuth-ΡΠΎΠΊΠ΅Π½Π°
- Client secret β Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΊΠΎΠΌ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ
2. Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ getAuthorizationUrl() Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΡΠ»ΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ:
use Tigusigalpa\YandexDisk\YandexDiskClient; $clientId = 'Π²Π°Ρ_client_id_ΠΈΠ·_Π½Π°ΡΡΡΠΎΠ΅ΠΊ_ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ'; $authUrl = YandexDiskClient::getAuthorizationUrl($clientId); echo "ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ:\n"; echo $authUrl; // ΠΡΠ²ΠΎΠ΄: https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>
ΠΠ»ΠΈ ΡΡΠΎΡΠΌΠΈΡΡΠΉΡΠ΅ ΡΡΡΠ»ΠΊΡ Π²ΡΡΡΠ½ΡΡ:
https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>
3. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅
- ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ Π² ΡΠ²ΠΎΡΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅ Π―Π½Π΄Π΅ΠΊΡΠ° (Π΅ΡΠ»ΠΈ Π΅ΡΠ΅ Π½Π΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Ρ)
- Π Π°Π·ΡΠ΅ΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ Π² URL
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠΎΠΊΠ΅Π½ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅
y0__xCD2tUFGKDjOyD2-Myl...
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
use Tigusigalpa\YandexDisk\YandexDiskClient; $accessToken = 'Π²Π°Ρ_oauth_ΡΠΎΠΊΠ΅Π½'; $client = new YandexDiskClient($accessToken); // Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ API $diskInfo = $client->getCapacity();
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΈΡΠΊΠ΅
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΈΡΠΊΠ΅ $diskInfo = $client->getCapacity(); echo "ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ: " . $diskInfo['used'] . " Π±Π°ΠΉΡ\n"; echo "ΠΡΠ΅Π³ΠΎ: " . $diskInfo['total_space'] . " Π±Π°ΠΉΡ\n"; echo "Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎ: " . ($diskInfo['total_space'] - $diskInfo['used']) . " Π±Π°ΠΉΡ\n";
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ
use Tigusigalpa\YandexDisk\Models\{Resource, DiskInfo}; // ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΈΡΠΊΠ΅ $diskData = $client->getCapacity(); $diskInfo = DiskInfo::fromArray($diskData); echo "ΠΡΠ΅Π³ΠΎ: " . $diskInfo->getTotalSpace() . " Π±Π°ΠΉΡ\n"; echo "ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ: " . $diskInfo->getUsedSpace() . " Π±Π°ΠΉΡ\n"; echo "Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎ: " . $diskInfo->getFreeSpace() . " Π±Π°ΠΉΡ\n"; echo "ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅: " . $diskInfo->getUsagePercentage() . "%\n"; echo "ΠΠΎΡΠ·ΠΈΠ½Π°: " . $diskInfo->getTrashSize() . " Π±Π°ΠΉΡ\n"; echo "ΠΠ»Π°ΡΠ½ΡΠΉ: " . ($diskInfo->isPaid() ? 'ΠΠ°' : 'ΠΠ΅Ρ') . "\n"; // ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠ° $meta = $client->getMeta('/disk/MyFile.txt'); $resource = Resource::fromArray($meta); echo "ΠΠΌΡ: " . $resource->getName() . "\n"; echo "Π’ΠΈΠΏ: " . $resource->getType() . "\n"; // 'file' ΠΈΠ»ΠΈ 'dir' echo "Π Π°Π·ΠΌΠ΅Ρ: " . $resource->getSize() . " Π±Π°ΠΉΡ\n"; echo "Π‘ΠΎΠ·Π΄Π°Π½: " . $resource->getCreated() . "\n"; echo "ΠΠ·ΠΌΠ΅Π½ΡΠ½: " . $resource->getModified() . "\n"; echo "MIME ΡΠΈΠΏ: " . $resource->getMimeType() . "\n"; echo "MD5: " . $resource->getMd5() . "\n"; echo "SHA256: " . $resource->getSha256() . "\n";
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π°
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π° $result = $client->uploadFile( '/local/path/file.txt', '/disk/MyFolder/file.txt', true // ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ); echo "Π‘ΡΠ°ΡΡΡ: " . $result['status'] . "\n"; // 201 Π΄Π»Ρ ΡΡΠΏΠ΅Ρ Π° echo "Π£ΡΠΏΠ΅ΡΠ½ΠΎ: " . ($result['success'] ? 'ΠΠ°' : 'ΠΠ΅Ρ') . "\n";
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
// Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° $success = $client->downloadFile( '/disk/MyFile.txt', '/local/path/downloaded.txt' ); echo $success ? "Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ\n" : "Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ\n";
ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
// ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° $result = $client->copy( '/disk/original.txt', '/disk/copy.txt', true // ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ); echo "Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΎ Π²: " . $result['path'] . "\n";
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
// ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° $result = $client->move( '/disk/old-location/file.txt', '/disk/new-location/file.txt', true // ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ); echo "ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΎ Π²: " . $result['path'] . "\n";
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° $result = $client->delete( '/disk/file.txt', true // ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (false = Π² ΠΊΠΎΡΠ·ΠΈΠ½Ρ) ); echo "Π£Π΄Π°Π»Π΅Π½ΠΎ\n";
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ
// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ $result = $client->createFolder('/disk/MyNewFolder'); echo "ΠΠ°ΠΏΠΊΠ° ΡΠΎΠ·Π΄Π°Π½Π°: " . $result['path'] . "\n"; // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΎΠΊ $client->createFolder('/disk/Projects'); $client->createFolder('/disk/Projects/WebDev'); $client->createFolder('/disk/Projects/WebDev/Site1');
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅ $allFiles = $client->getAllFiles(limit: 100, offset: 0); echo "ΠΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²: " . $allFiles['total'] . "\n"; foreach ($allFiles['items'] as $file) { $resource = Resource::fromArray($file); echo "- " . $resource->getName() . " (" . $resource->getType() . ")\n"; } // ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² $recent = $client->getRecentUploads(limit: 10); foreach ($recent['items'] as $file) { $resource = Resource::fromArray($file); echo "- " . $resource->getName() . "\n"; } // Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ $dirMeta = $client->getMeta('/disk/MyFolder'); $directory = Resource::fromArray($dirMeta); if ($directory->isDir()) { foreach ($directory->getItems() as $item) { echo "- " . $item->getName() . " (" . $item->getSize() . " Π±Π°ΠΉΡ)\n"; } echo "ΠΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²: " . $directory->getTotalItems() . "\n"; }
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ
// ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ $result = $client->addMeta('/disk/file.txt', [ 'description' => 'ΠΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅', 'author' => 'John Doe', 'version' => '1.0.0' ]); // ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠ° $meta = $client->getMeta('/disk/file.txt'); $resource = ResourceResponse::fromArray($meta); // ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ $customProps = $resource->toArray()['custom_properties'] ?? [];
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠ°
// Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΉΠ» ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ $result = $client->publish('/disk/document.pdf'); echo "ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ URL: " . $result['public_url'] . "\n"; // ΠΡΠ²ΠΎΠ΄: https://yadi.sk/d/abc123...
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² $published = $client->getRecentPublished(limit: 10); foreach ($published['items'] as $file) { $resource = Resource::fromArray($file); if ($resource->isPublished()) { echo "- " . $resource->getName() . "\n"; echo " URL: " . $resource->getPublicUrl() . "\n"; echo " ΠΠ»ΡΡ: " . $resource->getPublicKey() . "\n"; } }
ΠΡΠΌΠ΅Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠ°
// ΠΡΠΎΠ·Π²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ $result = $client->unpublish('/disk/document.pdf');
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ $available = $client->getAvailablePublicSettings(); print_r($available); // ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ΅ΡΡΡΡΠ° $settings = $client->getPublicSettings('/disk/document.pdf'); print_r($settings); // ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ $client->changePublicSettings('/disk/document.pdf', [ 'access' => [ 'type' => 'public', 'view' => true, 'comment' => true, 'edit' => false ] ]);
Π Π°Π±ΠΎΡΠ° Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° $publicMeta = $client->getPublicResourceMeta('https://yadi.sk/d/abc123...'); echo "ΠΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»: " . $publicMeta['name'] . "\n"; // Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° $client->downloadPublicResource('https://yadi.sk/d/abc123...', '/local/downloaded.pdf'); // Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° Π½Π° Π²Π°Ρ Π΄ΠΈΡΠΊ $saveResult = $client->savePublicResource( 'https://yadi.sk/d/abc123...', 'saved-document.pdf', '/disk/downloads/' );
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΡΠ·ΠΈΠ½Ρ $trash = $client->getTrash('/', 50, 0); foreach ($trash['items'] as $item) { echo "- " . $item['name'] . " (ΡΠ΄Π°Π»ΡΠ½: " . $item['deleted'] . ")\n"; } // ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΊΠΎΡΠ·ΠΈΠ½Ρ $restoreResult = $client->restoreFromTrash('/disk/document.pdf'); echo "ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ: " . $restoreResult['name'] . "\n"; // ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ $client->restoreFromTrash('/disk/document.pdf', 'restored-document.pdf', false); // Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΊΠΎΡΠ·ΠΈΠ½Ρ $client->clearTrash('/disk/document.pdf'); // ΠΡΠΈΡΡΠΊΠ° Π²ΡΠ΅ΠΉ ΠΊΠΎΡΠ·ΠΈΠ½Ρ $client->clearTrash();
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ· URL
// ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-URL $uploadResult = $client->uploadFromUrl( 'https://example.com/document.pdf', '/disk/downloads/document.pdf' ); echo "ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π°ΡΠ°ΡΠ°\n"; // ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ°ΡΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ if (isset($uploadResult['href'])) { $operationId = basename($uploadResult['href']); $status = $client->getOperationStatus($operationId); echo "Π‘ΡΠ°ΡΡΡ: " . $status['status'] . "\n"; echo "ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΎ: " . ($status['status'] === 'success' ? 'ΠΠ°' : 'ΠΠ΅Ρ') . "\n"; } // ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ $client->uploadFromUrl( 'https://example.com/document.pdf', '/disk/downloads/document.pdf', true // ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ );
ΠΠ΅ΡΠΎΠ΄Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ
// ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ $ownedResources = $client->getPublicResourcesOwnedByUser( 'user-uid-123', 'org-id-456', 20, 0 ); foreach ($ownedResources['items'] as $resource) { echo "- " . $resource['name'] . " (" . $resource['public_url'] . ")\n"; } // ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π²ΠΊΠ»ΡΡΠ°Ρ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΉ Π΄ΠΎΡΡΡΠΏ) $accessibleResources = $client->getPublicResourcesAccessedByUser( 'user-uid-123', 'org-id-456', true, // Π²ΠΊΠ»ΡΡΠΈΡΡ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΉ Π΄ΠΎΡΡΡΠΏ 20 ); // ΠΡΠΌΠ΅Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΡΡΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ°ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ $client->unpublishUserResource( 'public-key-789', 'user-uid-123', 'org-id-456' );
π ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Laravel
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
composer require tigusigalpa/yandex-disk-php
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»:
php artisan vendor:publish --provider="Tigusigalpa\YandexDisk\YandexDiskServiceProvider"
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π²Π°Ρ ΡΠ°ΠΉΠ» .env:
YANDEX_DISK_ACCESS_TOKEN=Π²Π°Ρ_oauth_ΡΠΎΠΊΠ΅Π½
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
use Tigusigalpa\YandexDisk\Facades\YandexDisk; // ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΠ°Π΄Π° $diskInfo = YandexDisk::getCapacity(); // ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° $client = app('yandex-disk'); $client->uploadFile($localPath, $remotePath);
π§ ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
SDK ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ:
use Tigusigalpa\YandexDisk\Exceptions\YandexDiskException; try { $client->uploadFile('/path/to/file.txt', '/disk/file.txt'); } catch (YandexDiskException $e) { echo "ΠΡΠΈΠ±ΠΊΠ°: " . $e->getMessage() . "\n"; echo "ΠΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ: " . $e->getErrorCode() . "\n"; // ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ API, Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ if ($e->getResponse()) { print_r($e->getResponse()); } }
π ΠΠΎΠΊΡΡΡΠΈΠ΅ API
| ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ | Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ | ΠΡΠ΅Π³ΠΎ | ΠΡΠΎΡΠ΅Π½Ρ |
|---|---|---|---|
| ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΈΡΠΊΠ΅ | β 1 | 1 | 100% |
| ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ | β 8 | 8 | 100% |
| ΠΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ | β 8 | 8 | 100% |
| Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½ΠΎΠΉ | β 3 | 3 | 100% |
| ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ | β 2 | 2 | 100% |
| ΠΠ΅ΡΠΎΠ΄Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° | β 3 | 3 | 100% |
| ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ | β 1 | 1 | 100% |
| ΠΡΠ΅Π³ΠΎ | β 26 | 26 | 100% |
π€ Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
ΠΠΊΠ»Π°Π΄Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ! ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Pull Request.
π ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ MIT License. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ LICENSE.
π Π‘ΡΡΠ»ΠΊΠΈ
- ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Yandex Disk API
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ OAuth
- Packagist
- Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ GitHub
π ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
ΠΠ»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠ²:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ issue Π½Π° GitHub
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
- ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ
Π‘Π΄Π΅Π»Π°Π½ΠΎ Ρ β€οΈ Π΄Π»Ρ PHP ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°