Daha önce ZF 1.5.2 için bir örnek oluşturmuştum. Ancak 1.8 versiyonundan itibaren işler biraz değişti. Aslında proje yaratmak oldukça kolaylaştı ama ilk kurulum biraz uğraştırabilir.
ZF 1.8’den itibaren, ilk kez 1.7 versiyonunda gelen Zend_Tool epey önplana çıktı. Artık “zf create project” gibi bir komutla çalışır bir proje elde etmek mümkün. Tabii gerekli ayarları yaptıktan sonra…
Zend Framework Kurulumu
Bu örnek windows için oluşturulmuştur ama linux ve mac için de mantık benzerdir.
Düzgün ve çalışan bir Apache – PHP – MySQL kurulumu olduğu varsayılmıştır.
PHP’nin “C:\php” altında olduğu varsayılmıştır.
Zend Framework 1.8.4 ile test edilmiştir, eski versiyonlarda çalışmayacağı garanti olup ileriki versiyonlar için söz veremem zira Zend zırt pırt değiştiriyor yapıyı…
Yapılacaklar
- Her projede ayrı ayrı kopyalar oluşturmamak için ZF’ü genel bir dizine koyup php’nin include_path’ine ekleyeceğiz.
- Projeleri otomatik yaratan zf.bat betiğine erişebilmek için zf.bat ve php.exe dosyalarının sistem PATH’ine ekleyeceğiz.
- Projeyi web sunucusunun kök dizini dışındaki bir “Projeler” dizininde oluşturacağız. (Güvenlik nedeniyle asla webroot’ta oluşturmayın!)
- Kök dizini dışında olduğumuz için bir virtual host tanımlayacağız. Böylece şık adreslerimiz de düzgün çalışacak.
- Projemizi test edip ilk kez çalıştığını göreceğiz.
Projenin Geliştirilmesi (Sonraki Yazı)
- Proje dizin yapısına bir göz atacağız.
- Proje ile ilgili ilk ayarları yapacağız (application.ini)
- Veritabanıyla ilgili işlemler için bir model yaratacağız.
- Birkaç action oluşturacağız ama silemeyeceğiz !?!? (Açıklaması var)
- Bir layout oluşturup view’lerimizi bu layout ile ilişkilendireceğiz.
- Basit bir helper oluşturacağız.
Kurulum
Öncelikle son versiyonu indirmekle başlayalım. Full versiyona şimdilik gerek yok o yüzden minimal olan versiyonu indirebilirsiniz.
İndirdiğiniz arşivi açtığınızda bin ve library olmak üzere iki dizin göreceksiniz. Bu dizinlerden bin içerisinde zf.bat, zf.php ve zf.sh dosyaları bulunur. Bu dosyalarla ilgili tanımları yaptıktan sonra projeyi otomatik olarak oluşturacak betikler bunlardır. Diğer dizin olan library altında ise Zend Framework bulunuyor.
ZF’ün PHP include_path’ine Eklenmesi
PHP kurulumunuzun “C:\php” altında olduğunu farz ederek, “C:\php\ZF” diye bir dizin oluşturun.
PEAR kütüphanesinin de “C:\php” içerisinde olduğunu düşünerek en uygun yerin burası olduğuna karar verdim ama başka yerlere kurmak da mümkün aslında.
Kütüphaneye erişebilmek için php.ini dosyasını açıp include_path tanımlamasına “C:\php\ZF\library” dizinini ekleyin.
- Doğru php.ini’yi güncellediğinizden emin olun. Bunun için bir php dosyasına “phpinfo();” yazıp çalıştırdıktan sonra “Loaded Configuration File” kısmına bakın.
- PEAR kurduysanız php.ini dosyasının en sonunda bir include_path tanımı daha olabilir.
- Birden fazla dizin tanımlanacaksa windows için noktalı virgül, linux ve mac için iki nokta ile ayırılması gerekir. Benim windows bilgisayarımdaki include_path’in son hali: include_path=”.;C:\php\pear;C:\php\ZF\library”
Apache’yi yeniden başlattığınızda include_path tanımı sayesinde artık hangi dizinde olursa olsun php içerisinden require(“Zend/….”); şeklinde dosya çağırabilir hale geldiniz. Ama çağırmanıza gerek olmayacak o ayrı.
ZF Betiğinin Çalıştırılabilir Dizinlere (Path) Eklenmesi
Bunun için Control Panel → System → Advanced System Settings penceresine gidin (Türkçe windows kullanıcıları başının çaresine baksın).
Environment Varibles’a tıklayınca açılan penceredeki System Variables altından PATH değişkeninin sonuna “C:\php\ZF\bin” ve “C:\php” dizinlerini ekleyin. (Noktalı virgülle ayırarak)
Bu aşamadan sonra bilgisayarınız baştan başlatmanız gerekecek maalesef. (Logout – Login kurtarmaz).
Buraya kadar eğer doğru bir şekilde yaptıysanız “Command Prompt” açıp “zf show version” yazdığınız zaman şöyle bir şey görmeniz lazım:
1 |
Zend Framework Version: 1.8.4 |
İlk Projemizin Oluşturulması
- Eğer yoksa, projeler ile ilgili web sunucunun kök dizininden farklı bir yere bir dizin oluşturun. Mesela benimkisi “D:\Projeler”.
- Bir “Command Prompt” açın ve o dizine cd ile gidin. Projeniz için dizin yaratmayın! zf.bat sizin için otomatik olarak halledecek bunu.
- Şu komutu verin:
1zf create project zf_deneme
ZF betiği projeler dizini altında zf_deneme diye bir dizin oluşturacak ve başlangıç için önerilen dizin yapısını oluşturacaktır:
Virtual Host Tanımlaması
Aslında virtual host olayına girmeden de çalışır hale getirmek mümkün. Bir “Alias” oluşturulabilir (Bkz. önceki yazım), ya da güvenliği boşverip doğrudan kök dizinine yerleştirilebilir ki kesinlikle tavsiye etmiyorum, alışmayın… Ancak her halükarda public dizini için “AllowOverride All” tanımını yapmalısınız.
Windows’da virtual host tanımlamak için önce httpd.conf dosyasını bulun. Bu dosyada:
1 |
NameVirtualHost *:80 |
satırının comment’li olmadığından emin olun. Eğer rewrite modülü yüklü değilse
1 |
LoadModule rewrite_module modules/mod_rewrite.so |
satırını ekleyin ya da başındaki commenti kaldırın.
Virtual host ile ilgili diğer tanımların bulunduğu yere aşağıdakileri tanımlayın (Bu arada virtual host tanımlamaları ayrı bir dosyada tutuluyor da olabilir, apache’nin conf dizinine bir bakın) :
1 2 3 4 5 6 7 8 9 10 11 |
<VirtualHost *:80> ServerName localhost </VirtualHost> <VirtualHost *:80> ServerName zf_deneme.localhost DocumentRoot D:\Projects\zf_deneme\public <Directory "D:\Projects\zf_deneme\public"> AllowOverride All </Directory> </VirtualHost> |
Yaptığınız değişikliklerin geçerli olması için apache’yi restart etmeniz gereklidir.
Son olarak C:\Windows\System32\drivers\etc dizinindeki hosts dosyasını notepad ile açın ve içerisine
1 |
127.0.0.1 zf_deneme.localhost |
satırını ekleyin. Windows’u restart etmenize gerek yok…
Artık http://zf_deneme.localhost/ adresine bağlandığınızda projenize erişebiliyor olmanız lazım:
Arkadasim kurulum anlatimin olmamis zend e sifirdan baslayan bir adam bu yazilardan hicbirsey anlamaz.anlatim fotograf yüklemek kadar kolay degil yinede sagol
merhabalar.
kurulumu appservera yapınca böyle bir hata veriyor.
Neden kaynaklanıyor olabilir acaba?
C:\AppServ\php5>zf create project zf_deneme
PHP Warning: PHP Startup: Unable to load dynamic library ‘C:/AppServ\php5\ext\p
hp_exif.dll’ – Belirtilen mod³l bulunamad².
in Unknown on line 0
Creating project at C:/AppServ/php5/zf_deneme
Çok teşekkürler verdiğiniz bilgiler çok işime yaradı
merhaba hocam;
1 aydır çözmediğimiz problemi sayenizde çözdük. walla allah razı olsun sizden
güzel ve anlaşılır.
çok teseşekkürer.
çok gereksiz detaylara girilmiş. konudan sapmalar olmuş(virtual host oluşturmak gibi).