OOP ile Merhaba arkadaşlar :) Neden OOP şeklinde birşey söylemeye gerek duymuyorum çünkü bu konuda fazlasıyla makale var zaten rahatlıkla araştırabilirsiniz veya bu kadar yazılımcı OOP kullanın diyorsa elbet bildikleri vardır diyerek kullandıkça sebeplerini kendiniz de çözebilirsiniz :)
OOP ile ilgili küçük projeler yayınlamıştım sırayla gitmek gibi olsun diye. Bunlar ; OneSignal Api ve Arabam.com Botu.Bu projelerde OOP kullanımının methodlar (fonksiyonlar) ile olacağını anlamış olmalısınız. Tabi OOP kullanımının asıl faydalarını daha geniş çaplı projelerde göreceksiniz. Bu makalemde ise bunu gerçekleştirmek istedim ve sizler için OOP ile yazılmış bir blog projesi hazırladım :)
OOP ile çalışmanın en güzel şekli sadece 1 kez alt yapıyı hazırlayıp daha sonra o alt yapı üzerine projeler geliştirmektir. Yani 1 kere yapıyı oluşturduktan sonra oluşturduğumuz yapıyı başka bir klasöre kopyalayarak üstüne projemizi yazıyoruz daha sonra yine başka bir klasöre kopyalayıp yine üstüne projemizi yazıyoruz. Hazır admin paneli üzerine sürekli değişiklik yapıp projeye entegre etmek gibi :)
Projeyi hazırlarken OOP yapısını yazmaya başladım fakat yapıyı tamamıyla baştan hazırlasaydım bunun makalelerini yazacak vaktim olmayacaktı o an aklıma geldi ki Tayfun ERBİLEN'in bu konuda hazırladığı bir yapı ve ders bulunuyor. Kendisinden bunun için müsade aldım ve desteklediği içinde Teşekkürlerimi tekrar sunuyorum :) Sağolsun işin zor kısmını halletmiş ve 1 saatlik bir video çekmiş bu konu üzerine :) Ben de Video da bulunan yapının aynısını yazarak üstüne Blog projesini geliştirdim. Böylece sizin de yapmanız gereken daha kolaylaştı. Önce video izleyeceksiniz yapı kısmının mantığını anlayacaksınız daha sonrada bu proje ile yapıyı daha gelişmiş bir kullanımını göreceksiniz. Bu da size OOP konusunda büyük bir adım attırmış olacak ve pratik ile de artık OOP yapısını kullanmaya tamamıyla sahip olacaksınız.
Video , Dosyalar ve Demo linklerini yayınlamadan önce bir kaç değişiklikten bahsetmek istiyorum. Tayfun Beyin hazırladığı yapı da her sayfa için ayrı bir controller oluşturma şeklindeydi zaten video izlediğinizde anlayacaksınız. Ben değişiklik olarak controller içerisinde methodlar kullanarak projeyi geliştirdim. Yani Tayfun Beyin hazırladığı yapıda anasayfa için anasayfa controller dosyasını hakkimizda sayfası için hakkimizda controller dosyasını kullanılıyor. Benim çevirdiğim hal ise OOP yapısına daha uygun ve frameworkler ile daha benzer şekilde. anasayfa için home controller dosyasının index methodu , hakkimizda sayfasi için home controller dosyasının hakkkimizda methodu çalışmaktadır. Birde View klasörünü App klasörünün dışına koydum böylesi daha hoşuma gitti :) Video izleyip anladıktan sonra benim yaptığım değişikliklerde birşey olmadığını görmüş olacaksınız zaten.
Kısaca özet geçeyim yinede. OOP Yapısında URL çekip explode ile parçalıyoruz.0. Değeri Controller dosyamızı belirler. 1.Değeri Controller dosyası içerisindeki çalışılacak methodu belirler. 2. Değeri ise Parametreleri gösterir Id değeri gibi. Hazırladığım projede 0. ve 1. değerleri kullanıyoruz fakat 2. değer olan parametreyi method içerisinde urlden çekiyoruz. Bunun daha doğru ve frameworkler ile daha benzer yolu methodu çağırırken direkt parametreyi göndermektir aslında. Ama daha fazla karışıklık olmasın diye bende bilerek method içerisinde urlden çektim.
App/System/config.php içerisinde Veritabanı ayaları bulunmaktadır. SQL dosyasını kendi veritabanınıza aktardıktan sonra ayarları yapmanız gerekir. Diğer sabit değişkenlerde burada bulunmaktadır. Projenin bulunacağı dizini ayarlamazsanız hatalı çalışacaktır.
OOP ile çalışmak ve yapıyı oluşturmak gerçekten çok eğlenceli birşey yapıyı tamamıyla istediğiniz gibi oluşturuyorsunuz herşey sizin elinizde ki makalede yazdığım gibi View klasörünü App klasörünün dışına almayı daha uygun gördüm yani tamamıyla kişisel olarak kendi küçük frameworkünüzü hazırlıyorsunuz :) Size olacak tavsiyelerimi toparlamak gerekirse öncelikle Tayfun Beyin hazırladığı video izleyin , Hazırladığım blog projesi ile mantığı biraz daha geliştirin , Herhangi bir framework ile projeler geliştirmeye başlayın ki tavsiyem Laravel olacaktır , Kütüphane ile mantığı geliştirdiğiniz zaman ise bu sefer de kendi kütüphanenizi yazmaya başlayın. Gözünüze zor gibi gelmesin aslında herşey Tayfun Beyin hazırladığı yapı gibi olacaktır sadece daha gelişmiş. Yinede kendi kütüphanenizi yazmaktan çekiniyorsanız yapamam gibisinden düşünüyorsanız Titan MVC adında Turan KARATUG tarafından geliştirilmiş bir framework bulunmakta. İlk versiyonlarından şimdiki versiyonlarına kadar tüm sürümlerini yayınlamış halde ilk sürümünden incelemeye başlayabilirsiniz. Bunlar sadece tavsiye değil aynı zamanda uyguladığım bir yöntem. Sadece ben OOP bilmeden framework öğrenmeye başladım ki ben hep böyleydim :) Siz bana bakmayın :)
Son olarak ise Blog için ücretsiz tasarım yayınlamış İbrahim ÇEVRÜK'e Teşekkürlerimi sunuyorum. Ayrıyeten Admin panel tasarımını da Tayfun Bey yayınlamıştı :) Kısacası anlayacağınız tasarımlarda yapı da hep hazır ben sadece blog kodlamasında rol aldım :) Bu şekilde kullanımdansa ben daha çok geliştirilmesi taraftarıyım tabi ki. Vaktim olursa proje içerisinde eklentiler yapabilir hatta yapıyı bile tamamıyla değiştirip size sunabilirim zaman gösterir artık bunu :) Proje içerisinde unutmadığım bir yer yok ise OOP yapısında hep açıklama satırlarına yer verdim gerisi zaten crud işlemi. İşinize yaraması dileğiyle sorunuz olursa çekinmeyin lütfen :)
Video & Github & Demo
Tayfun ERBİLEN'in Hazırladığı Video : Youtube
Proje İndirme & İnceleme : Github
Projenin Demosu : oopBlog - oopBlog Admin
Yorumlar
Bu makaleye ait yorum bulunmamaktadır. İlk yorumu sen yapmalısın :)