blog

Güzel PHP Kaynakları

13 Nisan 2016

PHP. Davamız. Tartışmalarımız. Dalga geçilenimiz ve son dönemde kendine gelmeye çalışanımız.

Aptalca bir başlangıç oldu.

İnternette gezerken geçerliliğini yitirmiş PHP kaynaklarının güzelmiş gibi paylaşılmasına rastlıyorum ve üzülüyorum. PHP’nin bu kadar uzun zamandır ortalıkta olmasının dezavantajlarından biri bu. Doğal. Ancak yine de Ekşi Sözlük’te, 2015 yılında, “en iyi kaynak” diye şu linkin paylaşılmasını sindiremiyorum. MYSQL fonksiyonları var lan bunda!! 5.5’ten beri deprecate olan, 7.0 ile tamamen kalkmış fonksiyonlar bunlar.

Bunlara tepki olarak gördüğüm güzel PHP kaynaklarını burada toplamaya karar verdim.

Jeffrey Way ve PHP Fundamentals
Jeffrey Way, Laracasts’i kurup yürümeden önce bu sitedeydi ve yine aynı kalitede videolar yapıyordu. Eğer PHP’ye yeni başlıyorsanız veya web ile alakasız başka bir programlama dilinden geliyorsanız inanılmaz faydalı olabilecek, modern PHP uygulamalarının açıklandığı (bak anlatıldığı demedim, açıklandığı) muhteşem bir seri.

İtiraf etmeliyim, bu işlere başlarken dedim ki ben araştırayım. Bu programlama dili öğrenmek belli ki yatırım gibi bi şey. Geleceği kısıtlı dillere vakit harcamak istemem. Ne yaptım? Gittim Google’a sordum. “Best languages to learn in 2014”, “Best language for web development”.

Karşıma hep iki tane sonuç çıktı. Python/Django ve Node.Js. İyi dedim süper. Node.Js çok karmaşık bir platforma benziyor, ben daha kullanıcı dostu gözüken Python’u öğreneyim. Codecademy’ye yazıldık, Python kurslarımıza devam ettik. Bir müddet sonra Django kurcalamaya başladık.

Hüsran, hüsran, hüsran. HTML, CSS ve copy-paste jQuery’den çıkmışım, dinamik site yapmaya girmek istiyorum. Önüme belli ki pek çok insanın hayatını değiştiren teknoloji sunuluyor ama beceremiyorum. Python çalıştım, anladım. Ama bu Django denen şey de neydi ki? Framework olduğunu da anlıyorum, tutorialları izleyerek blog da yapıyorum ama bu bloga yeni bir özellik eklemeye gelince ne yapmam gerektiği hakkında en ufak bir bilgim yok. Flask dediler, onla başla dediler. Şu herifin tutoriallarını takip ediyorum ama bu relational database dedikleri nedir ki? Takılıyorum. Haydi hepsini atlasam ben bu Python uygulamasını nasıl sunucuda çalıştıracağım en ufak fikrim yok.

İşte öyle öyle bu işi bıraktım. Bir daha da denemedim. Ta ki bi iş için lazım olana kadar. Bana HTML ve CSS’i rahatlıkla öğreten Jeffrey Way’in şu “uncool” diye yerilen PHP programlama diline bakayım dedim. Video 1, video 2, video 3… Seri bitti ve aydınlandım.

Sorun bence ne Python’da, ne Django’da ne de herhangi bir şeyde. Sorun bence bu gibi yeni başlayan statik siteden gelenlere, framework eksenli tavsiye verenlerde. Ben bunu şimdi daha net anlayabiliyorum. Çünkü framework’ler insanların senelerden beri yaşadığı sorunlara çözüm getiren, ya da yazıkları benzer kodları standartlaştıran, tekrar kullanılabilirlik getiren, bazen bir klasör yapısı, bazen bir mimari empoze eden bir çözümler yumağı. Bu anlamda muhteşemler. Ancak şu anlamda muhteşem değiller. Ben bir yeni başlayan olarak, insanların yaşadığı bu sorunlar neydi; onları bilmiyorum ki çözümlerini öğrenebileyim.

İşte Jeffrey Way’in bu seride çok iyi becerdiği şey bu. Evet sıfırdan başlıyor anlatmaya, ancak hiç sıkıcı olmuyor. Derhal ufak projeler yapmaya başlıyorsunuz ve işin muhteşemi Jeffrey Way size önce sorunu gösteriyor daha çözümlerini uyguluyor. Seri sonra erdiğinde biz neden modeller ile controller dosyalarını birbirinden ayırdık demiyorsunuz.

Ne kadar konuştum. Anlayacağınız üzere, bu seriye çok şey borçluyum.

PHP The Right Way

PHP üzerine çalışan, bu dilin ölüp gitmemesi için emek sarfeden tayfaya çok şey borçluyuz. Onların ortaya çıkardığı en önemli eser belki de bu web sayfası. 2016 yılında PHP geliştirme yapacaksanız uğramanız gereken ilk adreslerden biri burası. İlgili konular oldukça net bir şekilde açıklanıyor, daha fazlasını isteyen için gerekli linkler veriliyor.

Meraklısı için, Türkçe versiyonu da gözüküyor ancak ben erişemedim.

Symfony Kitabı

Bu kitabın ilk bölümleri, sade PHP’den framework’lere geçiş yapacaklar için biçilmiş bir kaftan.

Bence eğitim ve öğretimin en önemli sorunlarından biri, öğrenirken sorunları kaçırmamız ve çözümlere odaklanmamız. En basiti MVC. Bu MVC neden var? Olmasa ne olurdu? Veya framework’ler neden var? İnsanlar frameworksüz bir dünyada ne gibi problemler yaşıyordu? Bu problemleri yaşamadan, deneyimlemeden, anlamadan ilerlemek kimseye fayda sağlamıyor. O yüzden en tepeye Jeffrey Way’in PHP Fundamentals serisini koydum çünkü size sorunları göstererek adım adım MVC’ye yürütüyor. Aynı işi Symfony kitabı da başarıyor. Problemleri göstererek, HTTP’yi anlatarak modern frameworklerin getirdiği kolaylıkları açıklıyor.

Symfony öğrenmeye çalışmıyorsanız bile Symfony and HTTP Fundamentals ve Symfony versus Flat PHP bölümlerini okumalısınız.

Modern PHP Kitabı

Bu kitabın yazarı, oldukça popüler Slim Framework‘ün yaratıcısı ve yukarıda bahsettiğim PHP The Right Way sitesinin paydaşlarından Josh Lockhart. Bu orta seviye PHP bilginizin olduğunu varsayan bir kitap. Aslında alıp bi yandan metin editöründe kod yazdıracak bir kitap gibi değil. İçinde kod örnekleri de olmasına rağmen adeta bir rehber, yol gösterici bir kitap gibi. Uygulama geliştirirken, kodlarken, deploy ederken kaynak olarak kullanılacak, adeta bir başucu kitabı.

Laracasts

Elephant in the room. Elbette Laracasts’ten bahsetmeden olmaz. Hem Jeffrey Way’in bana kattıklarına bir teşekkür olarak hem de internetteki en güzel kaynaklarından biri olduğu için üyeyim. Aylık faturam geldiğinde içimden geçen tek cümle şu: “Oh, feda olsun”. PHP’nin, nesne yönelimli programlamanın, Laravel’in yanında, Git’i, Gulp’i ve daha nicesini buradan öğrendim ve öğrenmeye devam ediyorum. Daha da yazmama gerek yok bence.

Codecourse

Eski adıyla PHP Academy, yeni adıyla Codecourse. Alex Garrett adlı kişinin yürüttüğü bir YouTube kanalı. O sebeple ücretsiz güzel bir kaynak. Genel tutorial yanında, oldukça fazla örnek proje yapması açısından başarılı. Örnek projeleri takip ederek kendinizi çok hızlı bir şekilde geliştirebilirsiniz. Composer, Slim Framework, Laravel ve diğer önemli PHP paketlerinin hemen hepsine değinir. O bakımdan güncel kalmak için de takip edilmeli.