Hizmet sağlayıcılar ve hizmet kapsayıcıları laravel kullanarak nasıl çalışır?
Yayınlanan: 2022-09-16Temel işlevselliği anlamak zor olduğundan, laravel bazen deneyimli geliştiriciler için bile çok zor olabilir. Ama gerçekten de, web geliştirme ilginç.
İşlevlerinden biri, bu blogda ayrıntılı bir genel bakış sunacağım Servis Sağlayıcılarıdır. Bu blogda ayrıca bir service container'ın laravel'de nasıl çalıştığını anlatacağım.
Bunlar hayal edebileceğinizden daha basit. Bunu söyledikten sonra, doğrudan konuya girelim.
laravel'deki servis sağlayıcılar nelerdir?
Bir Laravel uygulamasındaki servis sağlayıcılar, uygulamanın önyüklendiği temel nokta olarak hizmet eder. Sonuç olarak sağlayıcılar, laravel'in temel hizmetlerini hizmet konteynerine ve uygulamamızın hizmetlerini, sınıflarını ve bağımlılıklarını hizmet konteynerine enjekte etmek için kullanılır.
Bu örneğin sağlayıcısı, "sağlayıcılar" adlı bir dizi olarak config/app.php içinde bulunabilir. Aşağıdaki resme bakın:
Herhangi bir üçüncü taraf hizmet sağlayıcısı kullanmak istediğinizi varsayalım, ardından hizmet sağlayıcı dizisinin yapılandırmasına başvurmanız gerekir.
Uygulamanın kimlik doğrulaması için gerekli olan Auth gibi, uygulamanın tamamını çalıştıran bazı hizmet sağlayıcıları görebilirsiniz.
Laravel'de servis sağlayıcılar nasıl oluşturulur?
Bir servis sağlayıcı kullanmak için önce bir tane oluşturmalısınız. Sonuç olarak, hemen şimdi bir servis sağlayıcı kuracağız. İhtiyacınız olan herhangi bir servis sağlayıcıyı oluşturmak için aşağıda verilen komutu kullanabilirsiniz.
php esnaf markası: sağlayıcı MyServiceProvider
Komutu çalıştırdığınızda, uygulamanızda daha sonra kullanabileceğiniz bir servis sağlayıcı oluşturulur.
Bundan sonra, uygulamanızı açın ve servis sağlayıcınızı bulacağınız sağlayıcılar klasörüne gidin.
Burada iki yöntem göreceksiniz, register() ve boot().
register() yöntemi
register() yönteminin hizmet kapsayıcımıza bağlamaları tanımlamamıza izin verdiği gerçeğini bilmek çok önemlidir. Örneğin, aşağıdaki koda bakın:
$this->app, uygulama aracılığıyla bir singleton sınıfına erişebilen laravel'deki global bir değişkendir.
Singleton bir özelliktir. Bu özelliği uyguladığınızda, uygulamada parametre olarak gönderilen sınıf ne olursa olsun, uygulama boyunca yalnızca bir kopyaya (örneğe) sahip olması gerektiğini uygulamaya bildirmiş olursunuz. Bu, MyClass'ın bir kez çözüleceği ve my_class değişkeni kullanılarak erişilebilen yalnızca bir örneğe sahip olacağı anlamına gelir.
boot() yöntemi
boot() yöntemi, daha önce register yöntemi kullanılarak kaydedilen tüm hizmetlere erişmenizi sağlar. Böylece bu yöntemi kullanarak tüm hizmeti uygulamanıza dahil edebilirsiniz.
Bir servis sağlayıcı nasıl kaydedilir?
Artık servis sağlayıcınızı oluşturduğunuz için, işlemi tamamlamak için onu yapılandırma dosyanıza kaydetmeniz gerekecektir. Buraya aşağıdaki resimde gösterildiği şekilde kayıt olmalısınız:

Tüm servis sağlayıcılar, uygulama her çalıştırıldığında önce yüklenir. Servis sağlayıcılar, Laravel uygulamaları için ana merkezi yerdir ve daha önce bu blogda tartışıldığı gibi, eksiksiz uygulamayı çalıştırmanıza yardımcı olmak için her zaman oradadırlar.
laravel'deki servis kapları nelerdir?
Service Container, bir Laravel uygulamasını yürütmek için gerekli olan tüm bağlamaları tek bir sunucuda saklamamıza izin veren güçlü bir mekanizmadır.
Uygulamadaki her şey bir servis konteyneri yardımıyla birbirine bağlanabilir.
laravel'de servis konteyneri nasıl kullanılır?
Şu senaryoyu düşünün: Toplama, çarpma vb. gibi belirli temel işlemleri yapmaktan sorumlu MathService adında bir sınıfımız var. Bu sınıfın kodu aşağıda verilmiştir.
Yukarıda görebileceğiniz gibi, dizi toplamı işlevini kullanarak sayıların toplamını hesaplamak ve dizi olarak verilen tüm sayıları dizi çarpım işlevini kullanarak çarpmak için iki yöntem vardır.
Dizi toplamı işlevi, dizi toplamı işlevini kullanarak sayıların toplamını hesaplarken, dizi çarpımı işlevi, bir dizi olarak sağlanan tüm sayıları çarpar.
Servis sağlayıcıyı kullanabilmek için öncelikle servisi servis konteynerine bağlamamız gerekiyor.
Ancak, bunu yaparak, Laravel'e MathService konteynerini MathService adındaki konteynerde tutmasını ve bir sınıf örneğine ihtiyaç duyduğumuzda geri döndürmesini söylüyoruz. Bu, bir sınıfın tek seferlik bağlanmasıdır ve programımızdan herhangi bir sayıda örnek elde etmek için kullanılabilir.
Daha önce belirtildiği gibi, hizmet kapsayıcılar ve sağlayıcılar, her Laravel uygulamasının kritik bileşenleridir. Daha önce belirtildiği gibi, kendi benzersiz hizmet sağlayıcılarımızı tasarlayabilir veya üçüncü taraf hizmet sağlayıcılarını uygulamalarımıza dahil edebiliriz.
Örnek olarak, sosyaliteyi Laravel'de kullanmak istiyorsanız, onu kopyalayıp uygulama servis sağlayıcı dosyasına yapıştırabilir ve uygulamanızın herhangi bir yerinde kullanabilirsiniz.
Özetlemek
Uygulamanızı yapılandırırken servis sağlayıcılardan yararlanılır. Hizmet kapsayıcı bağlamalarına ek olarak, rotalar, ara katman yazılımı ve olay dinleyicileri gibi diğer temel öğeler de yapılandırma dosyasının bu bölümünde kaydedilir.
Hizmet sağlayıcılar, talebin kendisi işlenmeden önce gerçekleştirilir ve talep sistem tarafından işlenmeden önce istediğiniz her şeyin yerinde olmasını ve ayarlanmasını sağlar. Bazı hizmet sağlayıcıların yürütülmesi düzenli olarak gerçekleşirken, diğer hizmet sağlayıcılar yalnızca gerekli olduğunda ("gecikmeli sağlayıcılar") gerçekleştirilir.
Bir hizmet kapsayıcı kullandığınızda, onu bağımlılık ekleme (örneğin, denetleyici sınıflarınızda parametre enjeksiyonu) ve ayrıca bağlama ve çözümleme sınıfları (belirli bir sözleşme için hangi sınıfın başlatılacağı gibi) için kullanabilirsiniz.
Web geliştirme zor bir süreç olabilir. Bu nedenle webdew, web siteleri ve uygulamalar oluşturmaya ve işleri sizin için kolaylaştırmaya yardımcı olacak yetenekli web geliştiricilerinden oluşan bir ekibe sahiptir.
Web tasarımı ve web geliştirme konusunda yardıma mı ihtiyacınız var? Bizimle temasa geçin!
Editör: Amrutha