Laravel üzerinde proje yazarken bazen eringeçliğimizden, bazen sevmediğimizden, bazende zaman dolayısıyla işlerimizi kolaylaştırmak zorunda kalıyoruz. Bu amaçla laravel üzerinde kullandığım paketlerden bahsetmek istedim. Tabi biraz da geyik yapıyım istedim. Böyle kuru kuru anlatınca insan sıkılıyor ya. Hatırlatmakta fayda var. Alttaki paketlerin hepsini Laravel 5.4 sürümünde gönül rahatlığıyla kullanabilirsiniz.
1.Migration Oluşturucu – Migrationları sonradan oluşturmak!
Eğer SQL tarafında dağınak çalışan bir insansanız ve IDE kullanıyorsanız Laravel Migrationları genellikle kullanmıyoruz. Tablo ismini değiştirmek için konsol da bir ton dosya oluşturup,migrationları çalıştırmak yerine, direk HeidiSQL gibi yada Mysql Workbench gibi programlarla hızlıca değiştirip, veritabanlarını isteğimize göre oluşturabiliyoruz. Hatta PHP Storm database aracıyla da sağdan tık tık açmak dururken migration oluşturmayla uğraşmıyoruz tabi.
Ama projeyi production ve deployment aşamalarında SQL Dump yapmak saçma oluyor. O yüzden migrationlar can diyoruz.. Tabi burada yapmamız gereken varolan Mysql Tablolarımızla migration oluşturmanın kolaylığını da buradan paylaşıyım istedim.
Laravel Migration Generator ile kolaylıkla varolan tablolarınızdan migration oluşturabilirsiniz.
2. Seed Oluşturucu – Elle Seed yazmak çok sıkıcı. Varolan tablodaki verileri Seed Yapıcak birşeyler?
Projenizin veritabanında tanımlı bazı verilerin olmasını gerektiğini düşünüyorsanız, hatta 100lerce satırlık bir sabit veriniz varsa ve bundan Seed oluşturmak istiyorsanız bu iş normal yoldan oldukça yorucu görünüyor.
Laravel Inverse Seeder ile varolan tablolarınızdaki verileri Seed yapabilirsiniz. Özellikle Üyelik tablolarında, yetki tablolarında her seferinde yeni projeye aktarmak yerine bir kere seed yapmak işinizi ciddi anlamda kolaylaştıracaktır.
3. Sentinel – Laravel Üyelik sistemini gelişmiş olarak yazabiliyormuyuz peki?
Herşeyin orjinali güzeldir fakat Laravel Üyelik sisteminde eğer daha önce çok sağlam bir paket yazmadıysanız ve aktivasyon,yetki,yasaklama gibi Üyelikle ilgili detayları yazmak gözünüzü korkutuyorsa, her projemde startup olarak kullandığım paketi sizlere takdim etmek istiyorum.
Laravel Sentinel User Package ile üyelik sistemini gelişmiş, güvenli ve oldukça hızlı bir şekilde kullanabilirsiniz. Ya şimdi bu yine uğraştırıcak yok mu şöyle direk pastaya üflemelik bir paket diyorsanız da Sentinel öncesinde çıkan ve hemen hemen benzeri özellikleri barındıran Sentry paketi ile geliştirilmiş bir kickstart paketi mevcut. At composera, yap ayarlarını kullan projesi içinde Rydurham/Sentinel paketini indirebilirsiniz.
4. Notification – Bildirimler için farklı birşeyler var mı?
Biraz daha böyle tarz bir notification sistemi istiyorsanız da laravel session sınıfıyla paralel olarak çalışan laravel toast paketini kullanabilirsiniz. Paketi yükledikten sonra vendor:publish işlemini yaptıktan hemen sonra resources/vendor/toast klasörüne 2 dosya düşüyor. Messages-jquery.blade.php dosyasını admin temanızın masterını bir kere eklerseniz rahatça her tarafta alert,success mesajlarınızı gösterebilirsiniz.
5.PDF Oluşturma- PDF filan oluşturmak içinde birşeyler vardır herhalde?
PDF konusunda eğer işiniz tamamen PDF tarafında dönmüyorsa Laravel/DOMPDF işinizi çözecektir. Fakat sürekli PDF ile çalışan ve sürekli çıktı üreten bir yazılım yapıcaksınız DOMPDF performans bakımından ciddi sıkıntılar veriyor. Bu konuda da HTML i en hızlı (Dosya boyutu ve render olarak) WKHTMLTOPDF eklentisi yapıyor. Yine DOMPDF in yazarı tarafından geliştirilen Laravel/Snappy eklentisini kullanabilirsiniz. Fakat sunucuya WKHTML i kurmanız gerekicektir. (Eğer windows bir makinada çalıştırıcaksınız da direk C ye kurup dizin adresini configte tanımlayabilirsiniz. Açıkcası eğer böyle 1-2 saniyeye takılmam ya diyorsanız DOMPDF, ama böyle çat diye PDF indirilsin istiyorsanız WKHTML kullanmanız mantıklı olacaktır.
6. Date – Zaman konusunda Carbon iyi güzel de sanki Dil vs konusunda biraz eksik değil mi?
Eğer işiniz gereği zamanlarla çok fazla uğraşıyorsanız, Carbon sınıfı (Laravel üzerinde geliyor) bir süreden sonra sıkıntı veriyor. Bu konuda ise jenssegers/date eklentisi işinizi fazlasıyla görecektir. Özellikle diffForHumans da neden İngilizce geliyor bu Carbon sorusunu bu paketle çözebilirsiniz. Carbon da kullandığınız tüm metodları bunda da kullanabilirsiniz.
7. Log Viewer – Hata loglarını not defterinde okumasak artık ya?
Sudo nanoyla açılan 4-5 mb lık bir log dosyasında Yeşil Font/Siyah Backgroundla tam hava atmalık bir dosya olsa da sıkıntı. Laravel üzerinde loglarınızı günlük ve anlık takip edebilmek için laravel-log-viewer paketiyle artık logları kolaylıkla takip edebilir ve rahatlıkla okuyabilirsiniz. Sonra müşteri “abi voops diye birşey çıktı” dediğinde ne hatası lan diye konsola bir sinirle girmenize gerek kalmıyor.
8. Excel – Yani bu programı kullanmasak ölürüz dimi?
Excel candır. Tabi yazılımcılar olarak “SQL” candır desekde toplumu değiştiremiyorsak ve Excel belgeriyle projemizde bol bol iş yapıcaksak Laravel-Excel eklentisiyle hem içe aktarma hemde CSV,XLS gibi dosyaları oluşturabiliyorsunuz. Halen bankacılık sisteminin FTP ye CSV attığı bir dönemde “Excel sevmiyoruz arkadaş” desekte Rest yerine CSV var diyorlar.
9. Form Builder – Bootstrapla her seferinde şu formları yazmasak, bir ton text,checkbox filan var ya?
Son 6 aya kadar Form eklentilerinden hep kaçmıştım ama bir süreden sonra zaman problemleri oluşunca BootForm adında Bootstrap tanımlı olarak kullanılan bir form paketi buldum yada bana söylemediniz böyle birşey var diye.. Bootform da open yada OpenHorizontal fonksiyonlarıyla dilediğiniz formu oluşturabilirsiniz.Birde ufak bir hatırlatma, bu edit sayfalarını yazarkan SQL deki veriyi işte Selectbox da if şuysa select yap, text te bu valueyi bas gibisinden bir ton kod yazıyorduk ya.. Heh işte onları yazmak artık yok. Edit sayfasında formun open taglarından hemen sonra Bind metoduyla tüm inputları otomatik veriyle doldurabiliyorsunuz. Edit kısmındaki o gıcık zaman kaybını bu sayede bitirmiş oluyorsunuz. Bknz: Gist
10. Ayarlar – Her yazılımın olmazsa olmaz sabit,ön tanımlı ayar sayfalarını nasıl kolaylaştırabiliriz?
Bu konuda veritabanı seçeneği de olsa pek yormadan böyle bir JSON dosyasından yada Config dosyaları gibi bir array dizisini çeksek mi diye düşünürken bulduğum harika bir eklenti. Her projemde default geliyor..
Laravel Settings paketiyle hızlıca ayarlar bölümünüzü oluşturabilirsiniz. Bootformla çok tatlı oluyor. Post kısmında ise ya şimdi tek tek view da tanımladık, Controllerda bari tanımlamayalım diyorsanız da, şöyle toplu bir Settings:set yapma gisti paylaşıyım. Bknz: Gist
Yukarıda bu zamana kadar hemen hemen her projemde kullandığım paketlerden bahsettim. Sizde sürekli kullandığınız projeleri aşağıya yorum olarak yazarsanız sevinirim. Kanalımıda takip.. Dur ya karıştı 🙂
İyi çalışmalar.