Unlimited After Effects and Premiere Pro templates, stock video, royalty free music tracks & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Photo & Video
  2. Photography

Yii2 ile Nasıl Uygulama Yazılır : Genel Bakış

by
Length:LongLanguages:

Russian (Pусский) translation by Michael Orlov (you can also view the original English article)

"Yii de ne?" diye soruyorsan, Yii' nin faydalarını ve Yii 2.0 sürümüne ait yeniliklere genel bir bakışı içeren 12 Ekim 2014 tarihli Yii Framework'e Giriş eğitimimi gözden geçirmeni tavsiye ederim.

Bu eğitim, uygulama geliştirme ortamınızı kurmayı, Yii 2.0 sürümünü yüklemeyi, basit bir Merhaba Dünya uygulaması oluşturmayı, uygulamanızı barındıracağınız sunucu ortamını ayarlamayı ve kodunuzu Github üzerinden nasıl dağıtacağınıza dair yol gösteren bilgiler içerir.

Yii 2.0 Sürümünü Yükleme

Belgeler

Ayrıntılı yükleme talimatlarına buradan erişebilirsiniz. Ben sizlere, tipik bir Mac OS X geliştirme ortamının kurulumunu anlatacağım. Yii 2.0' ın eksiksiz bir rehberi (PDF formatı) ve tüm detayları kapsayan bir Sınıf Referansı vardır.

Composer' ı Yükleme

Yii2' de PHP için popüler bağımlılık yöneticisi olan Composer gereklidir. Bilgisayarınızda Composer yüklü değilse, aşağıdaki işlemleri komut satırından yapın:

Yii2' yi Yükleme

Ardından, Yii2' yi kurmak için Composer' ı kullanın. Yükleme işlemi kurulum için sizden Github kimlik bilgilerinizi talep eder; yok ise Github üzerinden bir tane oluşturun.

Bu ilk projeyi "hello" olarak adlandıralım:

Yii2, geliştirdiğiniz uygulamanın türüne bağlı olarak iki farklı yükleme şablonu sunar: temel ve gelişmiş. Bu eğitimde, varsayılan olarak yüklenen temel uygulama şablonunu kullanacağız. Gelişmiş uygulama şablonu, bir WordPress bloğunun yönetim paneli ve arka plan görevlerine benzer, ileri düzey bir web uygulaması için gerekli olan sunucu tarafını, istemci tarafını ve erişim noktasını sunar.

Uygulama Geliştirme Ortamının Kurulumu

Ben OS X üzerinde, LAMP (Linux, Apache, MySQL, PHP) tipinde bir uygulama geliştirme ortamı için, ücretsiz ve açık kaynak kodlu MAMP uygulamasını kullanıyorum. MAMP' ın çalışır durumda ve web sunucusu ile veritabanının aktif olduğundan emin olun. Ardından, Sites uygulama dizininden MAMP' a bir sembolik link (symlink) oluşturun.

Sonra, tarayıcınızdan http://localhost:8888/hello/web adresini ziyaret edin. Artık ekranda Yii2' nin Bootstrap 3.x tabanlı temel uygulama şablonunu görmelisiniz.

Yii2 Newly Installed Basic Application Template

Bu sayfa büyük olasılıkla, cihaz çözünürlüklerine duyarlı açık kaynak CSS frameworkü Bootstrap'ın son sürümünü ön tanımlı olarak desteklemeyen Yii 1.1 geliştiricilerini heyecanlandıracaktır.

Yii Uygulama Mimarisi

Yii Framework' ünün en önemli özelliklerinden biri de PHP için Model View Controller yapısını sunmasıdır. Bu özellik, daha iyi yapılandırılmış bir uygulama ortamı ve daha anlaşılır kod sunmanın yanısıra, PHP' de yapılması zor olan güvenlik ve otomatik kod oluşturma gibi birtakım şeyleri basitleştirmektedir. Ayrıca, kodumuzu yeniden kullanılabilir ve daha kolay genişletilebilir hale getirir.

Bir Yii uygulamasında, tüm trafiği tek bir dosya üzerinden yönlendiririz : /web/index.php. Bu yerleşik dosya Yii' yi ve tüm bağımlılıkları yükler ardından da uygulamanızı çalıştırır.

Varsayılan olarak, /controllers/SiteController.php dosyasındaki index metodu şöyledir:

Genel olarak, controller' lar metodlarla dolu olurlar fakat yukardaki gibi asgari düzeyde koddan da oluşurlar. Controller' lar erişimi yönetir, model' leri kullanır ve görünümü oluşturur. İş mantığının büyük kısmı modellere yerleştirilmeli, görünümler de nispeten basit şablon işlemlerini yapmalıdır.

Varsayılan olarak Yii, /views/site/index.php dosyasındaki index görünümü için /views/layouts/main.php dosyasını kullanır. main.php tasarım planı (layout), araç çubuğu, içerik alanı gibi sayfanın HTML ve CSS yapısını sunar. main.php içerisinde, içeriğe kısa ve öz bir çağrı görürsünüz:

Şu anda HTML kodundan ibaret yukarda gördüğünüz Congratulations! sayfasındaki $content değişkeni, /views/site/index.php tarafından oluşturulan kod ile yer değiştirir.

Hello World Uygulaması!

Pretty URL Aktivasyonu

İlk olarak, Yii2' nin pretty URL (mantıklı ve bağlı olduğu sayfayı tanımlayıcı) mantığını mod_rewrite yardımıyla aktif edelim. Yii uygulamanızın ana sayfasındaki About menüsüne tıkladığınızda, tarayıcınızın adres satırındaki URL http://localhost:8888/hello/web/index.php?r=site%2Fabout şeklinde olacaktır. Bunu http://localhost:8888/hello/web/site/about olarak değiştireceğiz.

config alt dizini ilerde yapacağımız veritabanı ayarlarının yanısıra, web ve konsol uygulamalarınız için ortam yapılandırmalarını da içerir. Geçerli web uygulamanıza urlManager parametresini eklemek için /config/web.php dosyasını editörünüzde açın. Aşağıdaki urlManager kısmını components dizisinin içine ekleyin:

Sonra, index.php dosyasının yer aldığı /web dizini altında .htaccess isminde bir dosya oluşturun

MAMP üzerinde Apache mod_rewrite özelliğinin aktif olduğundan emin olun; değilse şu Stack Overflow rehberine göz atın.

Tarayıcınızdan http://localhost:8888/hello/web/site/about adresini ziyaret edin.Yii uygulamanızın About sayfasını görebilmeli ve diğer menü seçeneklerine tıkladığınızda mantıklı ve bağlı olduğu sayfayı tanımlayan (Pretty) URL' ler görmelisiniz.

Hello World Diyen Uygulama! Aksiyon

Sıradaki adım, controller' a Say adında istediğimiz mesajı tekrarlayan bir eylem eklemek. Aşağıdaki eylemi /controllers/SiteController.php dosyasına ekleyin:

Bu kod bloğu, ekrana yansıtılacak target adlı bir URL parametresi arayacak. Target parametresi yoksa eğer, tekrar "World" diyecek. Yii' de eylemler, "action" ön eki ve ardından metod adının yer aldığı bir yöntemle tanımlanır. SiteController sınıfında bu public function actionSay metodudur. Yii aksiyon metodlarını diğer metodlardan ayırmak için "action" ön ekini kullanır.

Render metodunun varsayılan davranışı views/ControllerID/ViewName.php şeklinde bir dosyanın var olup olmadığına bakmaktır. Bu yüzden, /views/site/ dizininde say.php isimli bir görünüm dosyası oluşturun.

Bu görünüm şablonu h1 HTML etiketini Hello ve onu takip eden target değişkeni ile yineler. Not: Kötü amaçlı kod saldırısından korunmak adına URL parametresindeki target değişkenini şifreliyoruz (encode işlemi).

http://localhost:8888/hello/web/site/say?target=Tuts%20Readers adresini ziyaret ederseniz ekranda şunu görebilmelisiniz:

Hello Tuts Readers

Burada anlatılan Yii2' nin Model View Controller yapısına ait çok basit bir örnektir. Daha kapsamlı bir Hello World ve Yii2 MVC sunumuna buradan erişebilirsiniz.

Artık uygulamamızın Github ayarlarını yapıp canlı ortamın yer aldığı sunucuya gönderelim.

Uzak Sunucu Ortamının Kurulumu

Temel Yii uygulaması sorunsuz bir şekilde Apache veya Nginx ile çalışır, ben Apache üzerine bilgi vereceğim, Nginx yönergelerini buradan bulabilirsiniz.

Github' da Repository Oluşturma

Bir Yii uygulamasına başladığımda birde Github repository' si oluştururum:

Create a New Repository at Github

Not: Başlangıçta siteyi uzak sunucuda oluşturup yerel makinaya indirmek yerine Yii2 .gitignore dosyasını Github' tan yerel ~/Sites/hello/.gitignore dosyasına kopyalayıp yapıştırmak daha kolay bir yöntemdir fakat her iki yaklaşımda kabul edilir.

Ben repository oluştururken çoğunlukla Github' ın Mac OS X uygulamasını kullanıyorum fakat dilerseniz komut satırını da kullanabilirsiniz. Aşağıda, komut satırından var olan bir projeyi Github' a nasıl eklendiğine dair yönergeleri takip ediyorum ("youraccount" yazan kısmı kendi Github kullanıcı bilginizle değiştirin).

Sunucunuzda bir Apache Sitesi Yapılandırma

Halihazırda bir LAMP veya bulut sunucunuz yoksa başlangıç olarak genel Ubuntu kurulumunun anlatıldığı belgeme göz atabilirsiniz. IP adresinizi aldıktan sonra, DNS kayıtlarınızı, sunucunuzun A tipi erişim kaydını içerecek şekilde değiştirin.

Ardından, IP adresi veya alan adı üzerinden sunucunuza SSH yardımıyla giriş yapın:

Sunucu güncelleştirmelerini alın, Git hizmetini yükleyin, Apache mod_rewrite ve PHP mcrypt özelliklerini aktif edin:

Sunucuda Github Erişimini Yapılandırma

Şimdi, Apache' nin yayınlayacağı sitenin kodunu Github' tan çekmeye yönelik bir kullanıcı oluşturacağız. Sunucunuza önce git' i yükleyin

Ardından, www isminde bir grup oluşturup www-data ile Github kullanıcılarını bu gruba dahil edip web dizinlerinin yetkilerini verelim.

Sonraki adım sunucu ile Github kodlarını senkronize etmede kullanılan kullanıcı için bir RSA anahtarı oluşturmak:

Github.com' a kopyalayıp yapıştırmanız gereken şöyle birşey göreceksiniz:

Your Github Key

Github' ta oluşturduğunuz repository' nin Settings (Ayarlar) sayfasındaki "Deploy keys" sekmesine tıklayın ve kopyaladığınız anahtarı buraya yapıştırın:

Ekledikten sonra burada listelendiğini göreceksiniz:

Son olarak, oluşturduğunuz repository' nin bir kopyasını makinanıza çekin:

Github erişimini düzgün bir şekilde yapılandırdıysanız, yukardaki komutun çıktısı şöyle görünmeli (değilse buraya göz atın):

Git Clone

Bu eğitim serisiyle, kodunuzu, yerel makinenizde geliştirip güncellemeleri Github' a gönderip uzaktaki sunucunuzla git pull aracılığıyla eşitleyebileceksiniz. Bu, kodunuzu, manuel yada bir tar (sıkıştırma tekniği) dosyası olarak indirip senkronize etmekten daha kolaydır ve bu eğitim serisinin devamındaki modüller de daha da kullanışlı hale gelecektir.

Apache Site Yapılandırmasını Oluşturma

Apache site yapılandırmasına ait dosyası oluşturun:

Alan adınıza (domain) uygun bu yapılandırmayı özelleştirin:

Sitenizi aktif edin:

Ve http://yourdomain.com/site/say?target=World! adresini ziyaret edin. Artık uygulamanıza ait sayfanın altında Yii2 hata ayıklama araç çubuğu yer almamalı:

Production Server Hello World Application

Tebrikler! Artık Yii2' nin daha gelişmiş özelliklerini keşfetmeye hazırız. Bir sonraki Yii2 eğitiminden haberdar olmak istiyorsanız, @tutspluscode veya @reifman twitter hesaplarını yada yazar sayfamı takip edebilirsiniz. Yazar sayfamda bu seriye ait tüm eğitimler yayınlanır yayınlanmaz yer alıcak.

Bu eğitimle ilgili sorunuz veya düzeltme talebiniz olursa lütfen bunları yorum alanında belirtiniz.

Konuyla İlgili Diğer Bağlantılar

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.