Laravel'de Klasör Yapısı Hakkında
Laravel son sürümü indirdim; daha önceden framework kullanmazken kendimce klasör yapısı oluşturup kullanıyordum.
Örneğin: İşlevsel fonksiyonların olduğu, siteyle alakalı DEFINE'lerin bulunduğu vb. kısacağı tek dosyadan çağırıp kullandığım bir "functions.php" dosyam vardı; bunu "includes" adlı bir klasör içerisinde tutuyordum.
1- Laravel'de bu tarz oluşturacağımız custom PHP dosyalarını hangi klasör altında tutmamız uygun olur?
2- İkini sorum olarak; Laravel 8'de Library olarak hangi klasör kullanılıyor? Yine kendimiz custom library oluşturmak için hangi klasörü kullanmalıyız?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
Merhaba, burra'ya katılıyorum. Böyle dosyaları genelde app/Helpers/
klasörü altında tutulmakta.
Ayrıca otomatik olarak bu fonksiyonları projeye dahil etmek istersen composer.json
dosyasında çağırabilirsin.
Örneğin app/Helpers/functions.php
dosyasını çağırmak istersen. composer.json
dosyasına
"autoload":{
//Eklemen gereken kısım
"files":[
"app/Helpers/functions.php"
],
...
}
@erdem Verdiğin cevaplar genel hatlarıyla doğru bilgi ancak soruya odaklı değil diye düşünüyorum. Dışarıdan indirdiğimiz tek bir PHP Class sayfası, veya sorudaki gibi kendi kullanmak istediğimiz için hazırladığımız bir PHP dosyasını vs. koyabileceğimiz klasör hangisidir? Bu sanırım önemli bir soru.
Public altında bir klasör açarak oradan mı kullanılmalı, Resources altına mı koyulmalı? vs...
Merhaba, tavsiye amaçlı yazıyorum laravel ile çalışmaya başladıktan sonra laravelin kurallarına göre ilerlemek gerekiyor. O kafaya kendini
adapte etmen gerekiyor artık esnek bir yazılım yok karşında tamamen laravel yazılımcılarının belirlediği bir iskelet var. Ben mesela OOP ile
website yapıyordum hintlilerden öğrenmiştim include klasörüne header footer koyuyordum conn clasörüne connect.php leri koyuyordum falan
ama mvc sistemine geçince esneklik bitiyor.
1) Public klasöründe sitede gözüken kızmı yapıyorsun.
2) App>Http>Controller yani Controller ile database bağlantılarını yapıyorsun.
3) Public -> Controller arasındaki bağlantıları router ile yapıyorsun.
4) App>Models yani Modelleri de yine database bağlantıları için kullanıyorsun (bunu nasıl anlatacağımı bilemedim).
5) Database klasörü içindeki migration ve seedlerle phpmyadmine girmeden tablolar,satırlar,sütunlar oluşturuyorsun.
Diğer klasörlere dokunmaya gerek yok e tabi gelişmiş bir yazılım yaparsan örnek vue js ile laraveli birleştirmek istersen diğer klasörleri
de düzenlemek, kullanmak gerekiyor ama genel itibariyle hatlar böyle.