Trait, PHP 5.4.0 ile gelmiş, nesneye yönelik programlama konseptlerinden birisidir. Başka dillerde de trait kullanımı olmakla beraber, Perl(roles), Scala(trait), Ruby(modules), birçok kişi hala ne olduğunu tam olarak bilmemekte ve yeteri kadar kullanmamaktadır.Trait'in basit bir tanımını yapacak olursam, interface gibi, bir class'ın(sınıfın) neler yapabileceğini belirten, aynı zamanda da, class gibi, yöntemleri, implemented (uygulanmış) şekilde, direkt sağlayabilen kısmi sınıf uygulaması diyebilirim. Ne gibi durumlarda trait kullanmanız gerektiğini bir örnekle anlatayım.

07 Ekim 2015

Interface birçok şekilde tanımlanabilir, ama şu ana kadar gördüğüm en sade ve net tanımlamayı yapacak olursam, bir objenin(nesnenin) bir başka objenin ne olduğuna bağlı olmaması, ama o objenin yapabildiklerine bağlı olmasını düzenleyen, objelerin karşılıklı anlaşması olarak düşünebilirsiniz. Ancak tabii ki bu tanım da yeterli kalmayabilir, o yüzden biraz daha bu kavramı gerçek hayattan bir örnekle açıklayacağım.İşe geç kaldınız ve evden en kısa sürede çıkmanız lazım, ancak eşiniz, siz tam çıkarken, akşama ne yemek yapayım sorusunu soruyor, siz de herhangi bir şey yap, yeter ki yiyebilelim diye geçiştirip çıkıyorsunuz. Yani eşinize ne yapması gerektiğini belirtmeyip, özellik(interface) belirterek eşinizin üreteceği çıktının(objenin), yenilebilir özelliğe sahip herhangi bir şey olmasını bekliyorsunuz.

02 Ekim 2015

PHP ile ilgili yazılmış kaynakların birçoğu ne yazık ki modern standartların çok gerisinde ve herhangi bir arama motoru sorgusunda en üstte çıkarak birçok yeni kullanıcının gelişimini olumsuz etkilemekte. Daha da kötüsü, Türkçe kaynak sayısı az olduğu gibi, daha büyük ve geri dönülemeyecek hatalara sebebiyet verebilecek yanlış yönlendirmelerle dolu. Doğal olarak da bu durum ülkemizde birçok insanın PHP konusunda olumsuz düşüncelere sahip olmasında büyük bir etken oluyor.Josh Lockhart'ın Modern PHP kitabı şu ana kadar gördüğüm en sade ve net anlatıma sahip, PHP'yi doğru kullanmanız için sizi en iyi yönlendiren kitap.

01 Ekim 2015

Deploying Laravel applications is not that hard, however, it's hard to find documentations on how to do it with Rocketeer. In this article I'll cover on how to install Ajenti to freshly installed Ubuntu VPS and deploy Laravel projects. Firstly, if you haven't read this article of Bryan Kennedy's about the security of Linux servers, start with it, I'll assume that, you have read and applied the instructions mentioned within that article.

02 September 2015

Birçok kişi hala Filezilla gibi programları kullanarak sürükle bırak yöntemiyle dosyalarını sunucuya aktarmakta. Bu yol ne yazık ki efektif olmadığı gibi, tamamen sizin ekstra zaman kaybetmenize sebep oluyor. Versiyon kontrolü de kullanmıyorsanız, hangi dosyayı değiştirdiğinizi aklınızda tutmanız, onları her bir klasöre özel şekilde atmanız lazım ki büyük çile.

09 Mayıs 2015

Admin panelimizi bitirmeden önce ufak bir ekleme daha yapacağız, yapacağımız şey ise kullanıcı admin paneline giriş ve çıkış yaptığında, o anı timestamp olarak veritabanınında tutacağız, yine aynı şekilde giriş yaptığında da ip adresini de tutacağız.Öncelikle bu sütunları eklememiz lazım: php artisan make:migration:schema add_columns_to_users_table --schema="logged_in_at:timestamp,logged_out_at:timestamp,ip_address:binary"php artisan migrate Bu sütunları ekledikten sonra iki adet event handler oluşturacağız. php artisan handler:event LoginEventHandlerphp artisan handler:event LogoutEventHandler Event oluşturmamıza gerek yok, çünkü Authentication, login ve logout durumunda eventlerini fire(Burada Türkçe hangi kelimeyi kullanabilirim fikrim yok, kusura bakmayın) ediyor. app/Handlers/Events klasörü içerisinde iki yeni dosya göreceksiniz.

22 Nisan 2015

Diğer controller ve modeller birbirine benzediği için tekrar tekrar aynı şeyleri paylaşmamak adına onları paylaşmayacağım, ancak bahsetmem gereken hala bazı şeyler var, örneğin herhangi bir WYSIWYG editörünü dosya yükleme özelliğiyle nasıl Laravel'e entegre edebilirsiniz ya da aynı şekilde yabancı kaynaklarda dahi pek bahsedilmeyen, sitenizin dashboardunda çok şık duracak, google analitik verilerini işleyerek güzel grafik ve verileri nasıl oluşturabilirsiniz bunlara cevap arayacağız. Bir sonraki makalede de mail modülünü ekleyip, Authentication'da kalan şifremi unuttum kısmıyla, frontend kısmını ekleyip bitireceğiz. WYSIWYG tercihini TinyMCE'den yana kullandığım için bower dosyasınıza tinymce'yi eklemek için "tinymce": "~4.1.9" satırını ekleyin, gulp dosyanızda da bower install ile yüklediğiniz bu paketi taşımak için .copy(bowerDir + 'tinymce', 'public/packages/tinymce') satırını ekleyip gulp --production ile de işlemi tamamlayın.

13 Nisan 2015