Kategori: Php

Yii2 Framework Türkçe Eğitimleri – Hello World

Yii2 Framework Türkçe Eğitimleri – Hello World

Yii2 Framework Türkçe Eğitimleri yazı dizimde daha önceden Framework’lerin genel yapıları ve Yii Framework hakkında genel bilgiler verip, Windows ortamında kurulumunu anlattım. Yii2 ‘de SEO dostu linkler oluşturmayı anlattıktan sonra bu içerikte ise artık ilk “Hello World” uygulamamızı yapalım istiyorum.

Her ne kadar bir text dosyasına “Hello World” yazıp tarayıcı da açmak ile view/site/index.php dosyasınada aynı işlemi yapmak aynı şey olacağından biz MVC mimarisini kullanarak veri aktarımları yaparak bir Hello World çalışması yapacağız. Bunun için öncelikle Yii2’de default olarak gelen /controllers/SiteController.php dosyasına aşağıdaki action metodunu ekleyelim.

Yukarıdaki kod bloğunda actionMerhaba adında bir metod oluşturduk içerisinde default "World" string değeri tanımlı $kelime adında bir değişken tanımladık. Yii’de controller eylemleri “action” ön eki ve ardından metod adının konulması şeklinde oluşturulur.

Render metodunun varsayılan olarak davranışı ise views/Controllerİsmi/Viewİsmi.php şeklindedir. SiteController‘i içerisinde actionMerhaba adında bir metod oluşturduğumuz için /views/site/ klasörü içerisine merhaba.php adında bir görünüm dosyası oluşturmamız gerekmektedir. Oluşturduğunuz dosyaya aşağıdaki kodları kopyalayın.

Bu görünüm dosyasında h1 HTML etiketi içerisine “Hello” ve ardından encode edilmiş şekilde $kelime değişkenini ekrana yazdırdık.

Eğer tarayıcınızdan http://localhost/hello/web/site/merhaba adresine giderseniz aşağıdaki görüntüye ulaşmış olmalısınız.

Controller içerisinde action metodlarında tanımlanan değişkenler bir GET değişkeni ararlar. Yukarıdaki linki ziyaret ettiğimizde herhangi bir GET verisi göndermediğimiz için default tanımladığımız “World” kelimesini taşıdı. Ancak  http://localhost/hello/web/site/merhaba?kelime=Kerem%20Taşpınar adresine giderseniz ekrana daha farklı bir çıktı gelecektir.

Yii2 Framework Türkçe Eğitimleri – Pretty URL

Yii2 Framework Türkçe Eğitimleri – Pretty URL

Yii2 Framework ile uygulama geliştirirken linklerin; daha okunabilir olması, daha güzel görünmeleri ve Google aramalarında kullanıcılara daha açıklayıcı bilgiler vermesi (SEO) açısından düzenlememiz gerekmektedir. Normal bir PHP uygulamada bunu .htaccess dosyasından yaparken Yii2 Framework’te bunu urlManager componenti ile kolayca yapabilmekteyiz.

Uygulamayı kurup diğer sayfaları gezdiğimizde link yapılarının şu şekilde olduğu dikkatinizi çekmiştir: http://localhost/hello/web/index.php?r=site%2Fabout . urlManager kullanarak linklerinizi http://localhost/hello/web/site/about şeklinde görüntülenmesini sağlayacağız.

config klasöründe ileride yapacağımız veritabanı ayarlarının yanı sıra web ve konsol uygulamaların için ortam yapılandırmalarını da içerir. Üzerinde çalıştığımız uygulamamıza urlManager componentini eklemek için /config/web.php dosyasını editörümüzde açıp aşağıdaki kodları components alanına parametre olarak eklememiz gerekmektedir.

Daha sonra /web klasörünün içerisine .htaccess adında bir dosya oluşturun ve aşağıdaki kodları içine kopyalayın.

Kullandığınız uygulama geliştirme ortamı (Xamp vs) üzerinde mod_rewrite özelliğinin aktif olduğundan emin olun.

Tarayıcınızdan http://localhost/hello/web/site/about adresini ziyaret ettiğinizde About sayfasını sorunsuz görebilmeli ve menüdeki seçeneklere tıkladığınızda artık aynı şekilde bağlantılara sahip olduğunu sağlamalısınız.

Yii2 Framework Türkçe Eğitimleri – Uygulama Mimarisi

Yii2 Framework Türkçe Eğitimleri – Uygulama Mimarisi

Yii2 Framework Türkçe Eğitimleri yazı dizimde daha önceden Framework’lerin genel yapıları ve Yii Framework hakkında genel bilgiler verip, Windows ortamında kurulumunu anlattım. Bu yazımda ise pratik olarak Yii2 Framework’ünü daha iyi anlamamız açısından mimarisi hakkında bilgiler vereceğim.

Yii Framework Uygulama Mimarisi

Yii Framework’ün en önemli özelliklerinden biri de PHP içerisine MVC teknolojisini dahil etmesidir. Bu özellik sayesinde daha iyi yapılandırılmış bir uygulama ortamı ve anlaşılır kod sunma olanaklarını sağlarken aynı zamanda PHP’nin eksikleri olan güvenlik ve otomatik kod oluşturma gibi bir çok alanda basitleştirme yaparak yazılım geliştiricilere kolaylık sağlar.

Bir Yii uygulamasında tüm trafiği ve kontrolü tek bir dosya üzerinden gerçekleştirirsiniz: /web/index.php .

Bu yerleşik dosya Yii çekirdeğini ve tüm bağımlılıkları (dependencies) yükler ve ardından uygulamanızı çalıştırır.

Kurulum içerisinde varsayılan olarak bir controller’da gelir. /controllers/SiteController.php dosyasındeki index metodu şu şekilde gelir:

Controller’lar tüm erişimi yönetirler. Model’leri kullanırlar ve Görünümleri oluştururlar. Genel olarak iş mantığının büyük kısmı model ve controller’lara yerleştirilmeli. Görünüm (View) ‘lerde ise diğer alanlara nazaran daha basit şablon işlemler yapılmalıdır.

Yerleşik olarak gelen /views/site/index.php dosyasındaki görünüm için ise bir layout şablonu kullanır. Bu şablona /views/layouts/main.php dosyasından ulaşırsınız. Bunu bir masterpage olarak düşünebilirsiniz. Kod tekrarını ve düzenlemeyi kolaylaştırmak adına tasarımın statik kısımlarını bir yerde tuttuğunuzu ve dinamik kısımlarını ise bu şablonun belirli yerlerine çağırdığınızı düşünün. main.php dosyasının bir kısmında aşağıdaki kodlara rastlanır.

Bu kodda ekrana bir $content değişkeninin yazdırıldığına dikkat etmişsinizdir. Burada /view/site/index.php tarafından oluşturulan kodlar ekrana yazdırılır.

Bu içeriği oluştururken kullandığım kaynaklar:

Yii2 Framework Türkçe Eğitimleri – Kurulum

Yii2 Framework Türkçe Eğitimleri – Kurulum

Yii2 Framework ile ilgili yazı dizimize bir önceki yazımız ile başlangıç yaptık ve genel olarak Framework’ler ve Yii hakkında bilgilendirmeler verdim. Bu içeriğimde ise artık Yii2 ‘nin kurulum aşamasına geçmek için kollarımızı sıvayacağız.

Yii 2.0 Sürüm Kurulumu

Yii’yi bir çok yöntem ile sunucunuza veya bilgisayarınıza kurulum yapabilirsiniz. Şimdi bunları inceleyelim. Ben windows kullandığım için kurulumu buna göre anlatacağım. Ancak Yii Framework Kurulum sayfasına giderek kendi işletim sisteminize göre kurulum hakkında bilgi alabilirsiniz.

Composer ile Kurulum

PHP kullanıyorsanız zaten bilgisayarınızda Composer paket yönetim sistemi kuruludur. Ancak kurulu olmayanlar için Composer web sitesinden kurulumu sağlayabilirsiniz.

Komut istemi aracılığı ile kurulum yapmak istediğiniz klasöre giderek aşağıdaki kodu çalıştırmanız yeterli olacak.

İlk projemizi “hello” olarak adlandıralım.

Manuel Kurulum

Dosyalarla uğraşmayı ve tarayıcıyı kullanmayı seviyorsanız veya Komut istemi ile ilgili problem yaşıyorsanız manuel kurulum’da yapabilirsiniz. Composer’in de yaptığı tam olarak aynı şey olacak.

  1. http://www.yiiframework.com/download/ adresine giderek “Install from an Archive File” alanından butonları kullanarak dosyalarınızı indirin.
  2. İndirdiğiniz dosyaları dilediğiniz bir klasöre çıkarın.
  3. Config/web.php dosyasına erişerek cookieValidationKey yapılandırma öğesine bir değer atamanız gerekmektedir.

Bu alana dilediğiniz string bir değeri girebilirsiniz.

Kurulum Sonu

Kurulumu herhangi bir uygulama geliştirme ortamına kurup (Xamp, Wamp, Lamp, Mamp gibi) “http://localhost/hello/web” adresinden Yii2 alt yapısına ait demo görüntüye sahip web sitenize ulaşabilirsiniz.

Ulaştığınız sayfa -eğer bir güncelleme olmaz ise- yukarıdaki görseldeki gibi Bootstrap alt yapısı ile oluşturulmuş bir görüntüye sahip olacaktır.

Bu içeriği oluştururken kullandığım kaynaklar:

Yii2 Framework Türkçe Eğitimleri – Giriş

Yii2 Framework Türkçe Eğitimleri – Giriş

PHP, kodlama dilleri arasında zengin kütüphaneleri, her isteği karşılama kapasitesi, tamamiyle özgünleştirilebilir ve hızlı yapısıyla bir çok proje için tercih edilen dillerden biridir. Özelleştirilebilir ve özgünleştirilebilir yapısı sayesinde günümüzde yüz binlerce yazılımcı PHP’nin geliştirilmesi için çabalamakta ve teknolojiye ayak uydurması için çalışmalar yapmaktadır. Bugün iş ilanlarında yer alan birbirinden farklı Framework yapılarının bulunmasının sebeplerinden biri de tam olarak budur. Peki nedir bu framework?

Framework nedir?

Kelime anlamıyla yapı, iskelet, çatı anlamlarını barındıran Framework; anlamında da yer aldığı gibi yazılımın temelini oluşturan bir iskelettir aslında. Framework, yazılım geliştiricilerinin kullanacağı kütüphanelerin hazır olarak bulunduğu, bir çok güvenlik önlemlerinin önceden alındığı, projelerin daha hızlı ve küçük detaylara takılmadan yazılmasını amaçlayan yapılara denir. Bu sayede yazılımcıların rutin olarak yazmakla saatlerini harcayacağı bir çok alanda hız kazandırır.

PHP Framework’lerin çoğu MVC (Model, View, Controller) teknolojini baz alan klasör hiyerarşisi yapısını da kullanır. Bu yapı ile projeler daha okunabilir ve düzenlenebilir kılınabiliyor.

Birçok proje büyüdükçe kodlar ve dosyalar karmaşıklaşmaya başlar. Hem kodların artması hem de yazılmış olan kodların unutulması, onlara ulaşılmayı ve okunmayı daha da zor hale getiriyor. Ancak bu yapılar sayesinde Model’de veritabanı işlemlerinizi, Controller’da genel mekanikler ve View’de ise görünüm kodlarının içermesinden dolayı düzenlemek veya ekleme yapmak istediğiniz alan hangisi ile alakalı ise daha kolay bir şekilde erişip kodlamaya devam edebilirsiniz.

Neden Yii Framework?

PHP’nin diğer kodlama dillerinden yetersiz kaldığı yönlerden bazıları; güvenlik sorunları, kendini tekrarlayan kodlamalar, MVC design pattern tekniklerinin dilin saf halinde bulunmamasıdır. Bu gibi sorunlardan dolayı çoğu yazılımcı bir framework kullanmayı tercih eder. Symfony, CodeIgniter, Laravel, Zend, Cake ve Yii gibi bir çok PHP frameworkü mevcuttur. Tıpkı diğerleri gibi Yii ‘de ücretsiz, açık kaynak kodlu, kod tekrarından uzak, hızlı uygulama geliştirmeyi destekleyen bir framework’tür. Yii, saf PHP’nin sınırlarını zorladığı bir çok alanda yüksek performans gösterdiği için bu yazı dizimde Yii ile ilgili içerikler sunacağım.

Yii2 Framework çok hızlı bir şekilde, çoğu yerde kod bile yazmadan (Gii Code Generator ile) performanslı web uygulamaları yapmamıza olanak sağlayan bir framework’tür. Ayrıca güzel bir dökümantasyon ve destek topluluğuna sahiptir.

Yii Framework Özellikleri

  • Model-View-Controller mimarisine sahiptir.
  • Database Access Objects tasarım şablonu, Active Record ve programlı veritabanı işlemleri, gelişmiş web uygulamaları geliştirirken kolaylık sağlar.
  • Form girdilerinin kontrolü, doğrulama ve Ajax desteği yerleşik olarak bulunur.
  • Kimlik doğrulama ve güçlü kullanıcı yönetimi destekleri yerleşik olarak bulunur.
  • Yii’nin kod üretme aracı Gii, MVC teknolojisine uygun kodlama geliştirmeyi hızlandırır.
  • Yii konsolu. Yii komut satırından veya arkaplan yordamı (daemon) olarak çalıştırılabilir ve bu sayede PHP’de  yüksek performanslı arka plan görevleri oluşturulabilir.
  • Bootstrap extension sayesinde mükemmel görünümlü ve duyarlı uygulamalar geliştirmeyi hızlı ve basit hale getirir.
  • Yii’nin katmanlı ön bellek desteği, uygulamalarınız için uyumlu önbellek türlerini uygulamayı kolaylaştırır.
  • PHP ve MySQL ile çalışan kodlarınızın güvenlik risklerini en aza indirir.
  • Diğer framework ve web hizmetleri ile entegrasyonu kullanmak oldukça basittir.
  • Yii’nin geliştirici topluluğu çeşitli ücretsiz ve açık kaynak kodlu eklenti ve widget’ler sunuyor.
  • Çoklu dil desteği ile Yii I18N standardını destekler ve uygulamalarınızın yerelleştirilmiş sürüm ihtiyacını kolayca giderir.
  • Hata yönetimi, log kayıtları ve test işlemleri Yii’de oldukça basittir.
  • API geliştirilmesini kolaylaştıran RESTful API framework entegrasyonu.
  • Codeception ile test entegrasyonu.
  • Gelişmiş URL yönetimi ve işlemleri.
  • Otomatik dokümantasyon oluşturucu.

Aynı zamanda Yii topluluğu, kullanışlı bir web tabanlı zengin içerik editörü olan Redactor‘u da sınırsız lisansını satın alarak Yii’nin içerisinde dahil ettiler. CMS uygulamaları yapmak isteyenler için işinize oldukça yarayacak bir özellik.

Yii’ye Başlarken

Oldukça gelişmiş ve yardımcı olan dokümantasyonu sayesinde Yii öğrenmek gayet kolaydır. Ben de bu içerik dizimde hem dokümantasyon, hem topluluklar, hem de diğer kaynaklardan edindiğim bilgileri derleyip Türkçe olarak sizlere aktarmaya devam edeceğim. Yii öğrenmeye koyulduysanız size yardımcı olacak, yer imlerinize eklemenizi önereceğim bir kaç link vereyim:

 

Yii2 Framework Türkçe Eğitim Serisi
Yii2 Framework Türkçe Eğitimleri – Kurulum
Yii2 Framework Türkçe Eğitimleri – Uygulama Mimarisi
Yii2 Framework Türkçe Eğitimleri – Pretty URL
Yii2 Framework Türkçe Eğitimleri – Hello World

 

Bu içeriği oluştururken kullandığım kaynaklar: