.
|-- public
| |-- index.php // ../src/boot.php'yi çağırır
`-- src
|-- boot.php // Laravel uygulamasını boot eder
|-- composer.json
|-- composer.lock
|-- laravel // laravel/laravel repo'sundan indirilen uygulama
| |-- vendor // Laravel vendor klasörü (Oluştur)
|
`-- vendor // Composer vendor klasörü
Composer ile laravel/framework
require edip, laravel/laravel
repo'sunu zip'li olarak indirdikten sonra aşağıdaki düzenlemeleri yap
public/index.php
<?php
require __DIR__.'/../src/boot.php';
src/boot.php
<?php
$loader = require __DIR__.'/vendor/autoload.php';
// Laravel default namespace'ini elle ekle.
// Laravel bu işlemi composer ile yapıyor.
//
$loader->addPsr4('App\\', __DIR__.'/laravel/app');
$app = require_once __DIR__.'/laravel/bootstrap/app.php';
// Run The Application
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Bu aşamada, kendi vendor klasörümüzü istediğimiz yere taşıyarak, oradan kullanabiliriz. src/boot.php
dosyasının yeri sabit kalmak şartıyla, composer autloader dosyasını çalıştırmamız yeterli
$loader = require 'path/to/composer/vendor/autoload.php';
...
Böyle bir yöntemle ilerlemenin tek sebebi; laravel'i, default uygulama klasörü yapısını değiştirmeden ve aynı zamanda oluşturulacak her uygulama için tüm paylaşılan repo'ları tekrar indirmeye gerek kalmadan kullanmaktır.
Laravel repo'sundan gelen artisan
, varsayılan olarak uygulama içindeki
autoloader'ı çağırıyor. İstenen klasör yapısına uygun olarak bu dosyayı oluştur.
src/laravel/vendor/autoload.php
<?php
// Make artisan work
$loader = require __DIR__.'/../../vendor/autoload.php';
$loader->addPsr4('App\\', __DIR__.'/../app');
Artık src/laravel/artisan
çalışabilir.