Zend Framework Başlangıç – Kurulum

30 May 2009 | Categories: PHP | Tags: , ,

Zend Framework artık gerçek anlamda bir framework olmakla beraber ciddi bir kütüphanedir de. Yazmayı planladığım bu yazı dizisinde bu framework tanışma ve en hızlı şekilde ilerleme amaçlanmaktadır.

Bu yüzden hem size hem de daha sonra okuyacak olanlara yardımcı olması için okurken notlar almanızı anlaşılmayan ve karışık bölümlerini bana özel ya da yorum olarak göndermenizi rica ediyorum.

İşe PHP 5 (evet, ZF PHP4 desteklememektedir) kurulu sunucumuzda include_path’i [1] tespit etmekle başlayalım. Bunun için Document Root’a [2] info.php adında dosya açıp phpinfo(); komutunu yazmamız yetecek.

info.php Kaynak Kodu:

<?php
phpinfo();

Bu adresi çalıştırdığımızda çıkan sonuçlar arasında ‘include_path’ in karşısında yazılan dizin isimlerini göreceksiniz. Bende ‘/usr/share/php’ dizinidir.

Zend Framework sitesinden indirdiğimiz [3] son sürümü (bu gün itibariyle 1.8.2) sıkıştırılmış dosyasında çıkarıyoruz. library içerisindeki Zend dizinini olduğu gibi include_path’lerinizden birisine kopyalıyoruz. (/usr/share/php/Zend/)

İşletim sisteminiz linux ve türevlerinden birisi ise

indirdiğimiz[4] bin dizini içerisindeki zf.sh, zf.php dosyalarını da taşıdığımız Zend dizinin yanına kopyalıyoruz. (/usr/share/php/zf.sh ve /usr/share/php/zf.php)
zf.sh dosyasına alias oluşturuyoruz :

~$ alias zf='/usr/share/php/zf.sh'

İşletim sisteminiz Windows ise
indirdiğimiz bin dizini içerindeki zf.bat ve zf.php dosyalarını Document Root’a atıyoruz.
Artık ilk ZF uygulamamızı yazmaya başlayalım:

Linux için:
Uç birimi çalıştırıp Masaüstü’ne gelip (cd ./Desktop veya cd ./Masaüstü) aşağıdakı komutu çalıştırıyoruz:

~$ zf create project zfprojem

Windows için :
Dos ekranından zf.bat dosyasının bulunduğu klasöre gelip aşağıdakı komutu çalıştırın:

C:\php> zf.bat create project zfprojem

Artık oluşan zfprojem dizini bir ZF projesidir.

Dizin içeriği aşağı yukarı şu şekildedir:

zfprojem/application
zfprojem/application/Bootstrap.php
zfprojem/application/configs
zfprojem/application/configs/application.ini
zfprojem/application/controllers
zfprojem/application/controllers/IndexController.php
zfprojem/application/controllers/ErrorController.php
zfprojem/application/models
zfprojem/application/views
zfprojem/application/views/helpers
zfprojem/application/views/scripts
zfprojem/application/views/scripts/index
zfprojem/application/views/scripts/index/index.phtml
zfprojem/application/views/scripts/error
zfprojem/application/views/scripts/error/error.phtml
zfprojem/library
zfprojem/public
zfprojem/public/.htaccess
zfprojem/public/index.php
zfprojem/.zfproject.xml

daha sonra bu dizinler ve dosyalar teker teker anlatılacaktır.

Şimdi yapmanız gereken zfprojem içerisindeki tüm dosya ve dizinleri zfprojem/public/ Document Root’a denk gelecek şekilde taşımak. Örneğin http://localhost yazınca çalışması gereken dosya public içerisindeki index.php olmalıdır. Bu sayade tüm kodlar Document Root’un üst dizinlerinde kalır. Bu da extra güvenlik demektir.

Daha güzel bir şekilde anlatırsak, apache virtual host kaydı bu şekilde olacaktır:

<VirtualHost example.com:*>
DocumentRoot /var/www/zfprojem/public
</VirtualHost>

Buraya kadar yapmamız gerekenleri doğru bir şekilde yaptıysak artık tarayıcımıza yeni bir pencere açıp projemizi çalıştırabiliriz. ZF ekibinin sizin için hazırlarığı “Hoş Geldin” mesajını görebiliyorsanız başarmışsınız demektir. Bu iyi bir ZF sever olacağınızın işaretleridir. Yok biryerlerde takıldıysanız bu da benim sorunumdur. Lütfen konuya ilgili geniş bir mail atın. Size ve sonrakilere yardımcı olmak için heyacanlanıyorum.

ZF’nin hayatınıza katacağı kolaylıkları hayal etmeye başladığınızı umarak ileriki konularda görüşmek üzere diyorum …

[1] include_path herhangi bir php dosyasından include(‘dosya_adi.php’); şeklinde çağrıla bilen dosyaları içeren dizin veya dizinlerdir.
[2] Document Root genelde http://localhost veya http://domainadi yazdığımızda çalışan dizindir.
[3] http://framework.zend.com/download/latest
[4] [3] de belirtilen adresten indirip açtığımız dosya

  1. May 30th, 2009 at 11:31
    Reply | Quote | #1

    Eline sağlık.

  2. omer
    June 5th, 2009 at 18:53
    Reply | Quote | #2

    şuanda e ticaret benzeri hatta e ticaret barındıran içersinde bi site kodluyorum , kendi framework umu oluşturcam dedim ya, mvc ile işe başladım ve class larımı yazıyorum ,bu yazdıklarını okuyorum da adapte olmakta sıkıntı daha doğrusu zaman babında kaybım olurmuş gibi geliyo zend i öğrenip o şekilde mi geliştirmeliyim sence daha doğrusu öğrenem sürecinde nasıl sıkıntılarla karşılaşırım(ingilizcem hala kötü) yorumunu bekliyorum elvin iyi çalışmalar …

  3. June 5th, 2009 at 19:48
    Reply | Quote | #3

    Daha önce de söylediğim gibi zaman açısından yeni bir kütüphane yazmaktan kat kat daha tasarruflu. Tabi ki kaynağının tamamı ingilizce gerektirdiği için sıkıntıların olur, Ama en sıkıntılı kısmı başlanğıc ve kurulum. Bu makaleleri takib ederek bunu başardıysan gerisi güzel devam edecek. Güven bana ;)

  4. omer
    June 5th, 2009 at 22:08
    Reply | Quote | #4

    şite tek sıkıntım zamanın dar olması , bir sürü şey var kafamda kararsızlık çekiyorum herşeyi bir yerlerinden öğreneyim derken hiç birşey öğrenemiyorum aslında , şimdi birde sen burdan kurulumdan başlayıp devam et dedin kafamda bi baloncuk daha oluştu …

  5. Ahmet Erdem
    June 19th, 2010 at 14:13
    Reply | Quote | #5

    Makaleniz için teşekkürler. Shared bir hosting kullanıyorsak public dizinini .htaccess vb. şekilde nasıl root olarak gösterebiliriz?

  6. 1 trackbacks