Paketler

Paket geliştirme

Paket, özellikle rotaları, denetleyicileri, görünümleri ve yapılandırmayı içeren, geliştirme için uygulamanıza eklenen bir birimdir. Büyük uygulamalarınızı daha küçük birimler halinde yönetmek için paketler oluşturulur.

Paketin temel ağaç yapısını aşağıda bulabilirsiniz:

- app/
  - Console/
  - Exceptions/
  - Http/
    - Controllers/API/
      - ACMEController.php
    - Middleware/
    - Requests/
      - StoreACMERequest.php
      - UpdateACMERequest.php
    - Resources/
      - ACMEResource.php
  - Jobs/
  - Models/
    - ACME.php
  - Providers/
  - Services/
    - BaseService.php
    - ACMEService.php
  - Traits/
- database/
  - factories/
    - ACMEFactory.php
  - migrations/
    - create_ACMES_table.php
  - seeders/
- routes/
  - api.php
  - auth.php
  - channels.php
  - console.php
  - web.php
- tests/
  - Feature/
    - ACMETest.php
  - Unit/
    - ACMETest.php

Yeni bir paket oluştur

Arka-Uç

Paket oluşturmanın iki yolu vardır.

  1. Laravel Artisan Komutlarını kullanarak (Önerilen)
  2. Tüm dosyaları manuel olarak ayarlayarak (Uzman Düzeyi)

1. Laravel Artisan Komutlarını kullanarak

Yöntem 1

Paket oluşturucu ile tüm mimariyi tek bir komutta oluşturabilirsiniz.

php artisan package:create --path=ACME --name=ACME

Controller API, Store & Update Request, Eloquent: API Resource, Laravel Test yapısını package:create komutu ile oluşturuyorsunuz.

--path= oluşturacağınız paketin dosya yolunu belirtmek için kullanılan fonksiyondur.

--name= oluşturacağınız paketin ismini belirtmek için kullanılan fonksiyondur.

Yöntem 2

Şimdi, paketinizi oluşturmak için aşağıdaki komutu kullanmanız gerekir,

php artisan make:model ACME -m
php artisan make:controller ACMEController --model=ACME --api --resource
use App\Http\Controllers\API\ApiController;
 
class ACMEController extends ApiController
{
  //
}
php artisan make:request StoreACMERequest
php artisan make:request UpdateACMERequest
return true;
||
return false;
php artisan make:resource ACMEResource

Bir servis oluşturmak için Artisan komutu yoktur, bu yüzden onu manuel olarak oluşturacağız.

- app/Services
  - ACMEService.php
use App\Services\Base\BaseService;
 
class ACMEService extends BaseService
{
    //
}
php artisan make:factory ACMEFactory

özellik testi için:

php artisan make:test ACMEControllerTest

birim testi için:

php artisan make:test ACMEControllerTest --unit
use Illuminate\Foundation\Testing\RefreshDatabase;
 
use RefreshDatabase;
 
protected string $apiUrl = '/api/';

2. Tüm dosyaları manuel olarak ayarlayarak

Paketi manuel olarak kurarak, paketlerin dizin yapılarına ve akışına aşina olduğunuzu varsayıyoruz. Değilse, paketin temel ağaç yapısını aşağıda bulabilirsiniz.

Detaylar
- app/
- Http/
  - Controllers/API/
    - ACMEController.php
  - Requests/
    - StoreACMERequest.php
    - UpdateACMERequest.php
  - Resources/
    - ACMEResource.php
- Models/
  - ACME.php
- Services/
  - BaseService.php
  - ACMEService.php
- database/
- factories/
  - ACMEFactory.php
- migrations/
  - create_ACMEs_table.php
- routes/
- api.php
- tests/
- Feature/
  - ACMETest.php
- Unit/
  - ACMETest.php

Ön-uç

Tüm dosyaları manuel olarak ayarlayarak

Paketi manuel olarak kurarak, paketlerin dizin yapılarına ve akışına aşina olduğunuzu varsayıyoruz. Değilse, paketin temel ağaç yapısını aşağıda bulabilirsiniz.

Detaylar
- src/
    - components/
        - ACME/
            - ACME.js
    - pages/
      - ACME/
        - [id]
          - edit.js
          - view.js
      - index.js
      - create.js

Ön-uç dosya yapısı

Dokümantasyonda belirtilen ön uç dosya yapısını kullanmalısınız! Bu yapı, Mizanpajı ön uç için yerleştirir.

import AppLayout from '@/components/Layouts/AppLayout';
import Head from 'next/head';
 
Index.getLayout = page => <AppLayout name="ACME">{page}</AppLayout>;
export default function Index() {
    return (
        <>
            <Head>
                <title>ACME - İmtihan</title>
                <meta name="description" content="Generated by codenteq" />
            </Head>
            ...
        </>
    );
}