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.
- Laravel Artisan Komutlarını kullanarak (Önerilen)
- 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>
...
</>
);
}