v0.1 ilkin inkişaf versiyasını oxuyursunuz. API-lər dəyişə bilər.
~ 2 dəq oxuYenilənib: 2026-10-30

API resursları və səhifələmə

Resurs cavabda görünəcək sahələri açıq göstərir. Sinfi app/Resources/ProductResource.php faylında saxlayın. Model, ORM entity-si, parol və daxili əlaqələr avtomatik JSON-a çevrilmir.

İşlək nümunə

<?php
declare(strict_types=1);
namespace App\Resources;

use Elang\Http\Resource;
use Symfony\Component\HttpFoundation\Request;

final class ProductResource extends Resource
{
    public function toArray(Request $request): array
    {
        return [
            'id' => $this->resource->id,
            'title' => $this->resource->title,
            'quantity' => $this->resource->quantity,
        ];
    }
}

Cavabın quruluşu

Kontrollerdən new ProductResource($product) qaytaranda {"data":{...}} alınır. Siyahı üçün ProductResource::collection($items) istifadə edin. Elang Data Paginator verilərsə meta məlumatı çevrilmiş data ilə saxlanır. Doctrine repository siyahısı adi iterable-dır; avtomatik səhifələnmir.

İcazə və əlaqələr

Resurs artıq icazəsi yoxlanmış məlumatı formatlayır. İcazə və sahib/tenant şərtlərini resursdan əvvəl tətbiq edin. Hər sətir üçün ayrıca sorğu yaranmasın deyə yalnız lazım olan əlaqələri seçin və ya fetch join edin. Serverin request/response müqaviləsi Symfony HttpFoundation olaraq qalır.

use App\Resources\ProductResource;

$router->get('/api/products', fn () => ProductResource::collection($products));

Birlikdə yoxlayın

ORM quraşdırılmış tətbiqdə tam kataloq nümunəsini işlədin. Müvəqqəti yaddaş bazası və fake partnyor API istifadə olunur. Nəticədə "checks":"passed" görünməlidir. Nümunə entity əlaqələri, fetch join, resurs, kolleksiya və HTTP/kernel yoxlamalarını birləşdirir.

php vendor/elang/framework/examples/orm-catalog/run.php

Növbəti addım · GitHub: complete runnable source

Tez-tez edilən səhvlər

Əlamət Düzəliş
Hər sətirə əlavə SQL gedir Resursun istifadə etdiyi əlaqəni fetch join edin.
Başqa istifadəçinin sətri görünür Resursdan əvvəl sorğunu sahib/tenant ilə məhdudlaşdırın.
Kömək lazımdır?

Yoxlayın: problemlərin həlli bələdçisi, termini burada axtarın: terminlər lüğəti, yaxud bunu addım-addım tamamlayın: tam tapşırıq lövhəsi layihəsi.

Elang sənədlərində axtar

Növbəti addımınızı tapmaq üçün yazmağa başlayın.