LARAVEL (paket geliştirme)
Paketler laravel işlevsellik eklemek birincil yoludur. Paketler gibi tarihleri ile çalışmak için harika bir yol şey olabilir Carbon veya benzeri bütün bir BDD test çerçevesi Behat .
Tabii ki, paketlerin farklı türleri vardır. Bazı paketler tek başına olan, herhangi bir çerçeve, sadece laravel ile çalışmak anlamına gelir. Karbon ve Behat Hem tek başına paketleri örnekleridir. Bu paketlerin herhangi basitçe bunları isteyerek laravel ile kullanılabilir composer.json
dosyası.
Öte yandan, diğer paketler özellikle laravel ile kullanılmak üzere tasarlanmıştır. Bu paketler özellikle laravel uygulama geliştirmek için tasarlanan yolları, kontrolörler, görüşlerini ve konfigürasyonuna sahip olabilir. Bu kılavuz öncelikle laravel özgü olanlar gelişimini kapsar.
Tüm laravel paketleri yoluyla dağıtılır Packagist ve Besteci bu yüzden bu harika PHP paket dağıtım araçları hakkında öğrenme esastır.
Görünümler
Paketin iç yapısı tamamen size bağlıdır; Ancak genellikle her paket bir veya daha fazla içerecektir servis sağlayıcıları . Servis sağlayıcı herhangi birini içeren IoC paket yapılandırma, görünümler ve çeviri dosyaların bulunduğu yere kadar bağlamaları yanı sıra talimatları.
Görünümler
Paket görünümleri genellikle "ad" sözdizimi çift iki nokta üst üste kullanılarak başvurulan:
return view('package::view.name');
Tek yapmanız gereken tek şey, belirli bir ad alanı için görünümler bulunduğu laravel söylemek. Paketiniz "kurye" adlı Örneğin, servis sağlayıcının aşağıdakileri ekleyin olabilir boot
yöntemle:
public function boot()
{
$this->loadViewsFrom('courier', __DIR__.'/path/to/views');
}
Şimdi aşağıdaki sözdizimini kullanarak paket görünümleri yükleyebilirsiniz:
return view('courier::view.name');
Kullandığınızda loadViewsFrom
yöntemi, laravel aslında kaydeder iki uygulamanın bir tane: görüşlerinizi yerleri resources/views/vendor
dizin ve belirttiğiniz dizininde bir tane. Yani, bizim kullanarak courier
örnek: Bir paket görünümü isterken görüş özel versiyonu geliştirici tarafından sağlanmış ise, laravel ilk kontrol edecektir resources/views/vendor/courier
. Görünüm özelleştirilmemişse Sonra, laravel sen çağrınızda Belirtilen paket görünümü dizini arayacaktır loadViewsFrom
. Son kullanıcılar / özelleştirmek paketin görüşlerini geçersiz kılmak için bu kolaylaştırır.
Yayıncılık Görüntüleme
Için paketin görüşlerini yayınlamak için resource/views/vendor
dizine, kullanmak gerekir publishes
dan yöntemi boot
servis sağlayıcınızın yöntemi:
public function boot()
{
$this->loadViewsFrom('courier', __DIR__.'/path/to/views');
$this->publishes([
__DIR__.'/path/to/views' => base_path('resources/views/vendor/courier'),
]);
}
Paketinizin kullanıcıları laravel en yürütmek Şimdi, vendor:publish
komutu, görüşleriniz dizini belirtilen konuma kopyalanır.
Not: Sen kullanabilir
publishes
yayımlamak için yöntem herhangi istediğiniz herhangi bir yere dosya türünü.
Çeviriler
Paket çeviri dosyaları tipik bir çift kolon sözdizimi kullanılarak başvurulan:
return trans('package::file.line');
Tek yapmanız gereken tek şey, belirli bir ad alanı için çeviriler bulunduğu laravel söylemek. Paketiniz "kurye" adlı Örneğin, servis sağlayıcının aşağıdakileri ekleyin olabilir boot
yöntemle:
public function boot()
{
$this->loadTranslationsFrom('courier', __DIR__.'/path/to/translations');
}
Senin içinde olduğunu unutmayın translations
klasörde, aşağıdaki gibi her dil için başka dizinleri olurdu en
, es
, ru
vb
Şimdi aşağıdaki sözdizimini kullanarak paket çevirileri yükleyebilirsiniz:
return trans('courier::file.line');
Yapılandırma
Genellikle, uygulamanın kendi için paketin yapılandırma dosyasını yayınlamak isteyecektir config
dizine. Bu paketin kullanıcıların kolayca varsayılan yapılandırma seçeneklerini geçersiz kılmak için izin verecektir.
Sadece kullanmak, bir yapılandırma dosyası yayınlamak için publishes
gelen yöntemini boot
servis sağlayıcınız yöntemi:
$this->publishes([
__DIR__.'/path/to/config/courier.php' => config_path('courier.php'),
]);
Paketinizin kullanıcıları laravel en yürütmek Şimdi, vendor:publish
komutu, dosya belirtilen konuma kopyalanır. Yapılandırma yayınlandıktan sonra Elbette, herhangi bir diğer yapılandırma dosyası gibi erişilebilir:
$value = config('courier.option');
Ayrıca uygulamanın kopya ile kendi paket yapılandırma dosyası birleştirme tercih edebilir. Bu, kullanıcıların aslında konfigürasyonun yayınlanan nüshasında geçersiz kılmak istiyorsanız sadece seçenekleri eklemenize olanak verir. Yapılandırmaları birleştirmek için kullanmak mergeConfigFrom
servis sağlayıcınızın içinde yöntemini register
yöntemiyle:
$this->mergeConfigFrom(
'courier', __DIR__.'/path/to/config/courier.php'
);
Yönlendirme
Basitçe, senin paketi için yolları dosyası yüklemek için include
kendisine servis sağlayıcınızın içinden boot
yöntemle.
Bir Servis Sağlayıcı A Rotalar Dosya dahil
public function boot()
{
include __DIR__.'/../../routes.php';
}
Not: Paket denetleyicileri kullanıyorsa, onlar düzgün yapılandırılmış olduğundan emin olun gerekecektir
composer.json
dosyanın otomatik yüklenen bölüm.
Kopyala yapıştır,translate.Mükemmel!