Zend Framework’e Hızlı Giriş

       Eser SAHİLLİOĞLU
       Bilkent Üniversitesi
Konu Başlıkları
•   Zend Framework Nedir?
•   Özellikleri
•   MVC Nedir?
•   Gereksinimler?
•   Nasıl Kurulur?
•   Proje Oluşturma [Makaleler Modülü]
•   Dizin Yapısı
•   Proje Ayarları
•   Örnek Uygulama

                        Zend Framework'e Hızlı Giriş   2
Zend Framework nedir?
• PHP 5 tabanlı
• açık-kaynak kodlu
• OO mantığında tasarlanmış ve kodlanmış
bir web uygulamaları geliştirme altyapısıdır.




                   Zend Framework'e Hızlı Giriş   3
Özellikleri
• PHP 5 tabanlı
• açık-kaynak kodlu
• OO tasarım ve koda sahip
• MVC yapısına uygun
• MVC yapısı dışında PEAR mantığında da
  kullanılabilir
• Genişletilebilir
• Ticari ve kurumsal kullanım konusunda lisans
  sorunu yok

                   Zend Framework'e Hızlı Giriş   4
MVC Nedir?
• MVC: Yazılım tasarımında ve geliştirmede
  kullanılan bir yaklaşım/konsept
• M: Model
   – Veritabanı benzeri veri kaynakları ile ilgili işlemleri
     yapan katman
• V: View
   – İşlenmiş verinin sunulduğu katman
• C: Controller
   – V ile M arasındaki bağlantıyı sağlayan ve uygulamaya
     ait temel işlemlerin yapıldığı katman

                         Zend Framework'e Hızlı Giriş          5
Gereksinimler
• +PHP bilgisi
  – ~deneyim
  – ~okuma
• Web Sunucusu (+DBMS)
  – [Zend Server, WAMP, XAMPP vb.]
• Zend Framework
• Heves veya mecburiyet


                   Zend Framework'e Hızlı Giriş   6
Nasıl Kurulur?
• İndirme adresi:
  http://framework.zend.com




                 Zend Framework'e Hızlı Giriş   7
Nasıl Kurulur?
• Açılacağı dizin:
  d:zf




                     Zend Framework'e Hızlı Giriş   8
Nasıl Kurulur?
• Sistem değişkenleri güncellenir:
  – ;d:zfbin;d:zflibrary;d:xamppphp
  – Bakınız: Şekil 1




                       Zend Framework'e Hızlı Giriş   9
Nasıl Kurulur?
   Şekil 1




  Zend Framework'e Hızlı Giriş   10
Nasıl Kurulur?
• Apache virtual host modülü etkinleştirilir:
  – d:xamppapacheconfhttpd.conf
     • Etkinleştirilecek satır:
         – Include conf/extra/httpd-vhosts.conf




                         Zend Framework'e Hızlı Giriş   11
Nasıl Kurulur?
• Apache rewrite modülü etkinleştirilir:
  – d:xamppapacheconfhttpd.conf
     • Etkinleştirilecek satır:
         – LoadModule rewrite_module modules/mod_rewrite.so




                         Zend Framework'e Hızlı Giriş         12
Nasıl Kurulur?
• Apache’ye virtual host tanımı eklenir:
  – d:xamppapacheconfextrahttpd-vhosts.conf
     • zfsite.local domain’i eklenir:
        – Örnek dosya için: sample-applicationapache.new.virtual.host.txt




                             Zend Framework'e Hızlı Giriş                    13
Nasıl Kurulur?
• Hosts dosyasına domain kaydı eklenir:
  – C:WINDOWSsystem32driversetchosts
      • 127.0.0.1 zfsite.local
  – Test:
      • http://zfsite.local




                                 Zend Framework'e Hızlı Giriş   14
Nasıl Kurulur?
• php.ini ayarları yapılır:
   – Güncellenecek satır:
       • include_path = ".;d:xamppphppear;d:zflibrary"
   – Etkinleştirilecek satır:
       • extension=php_pdo_mysql.dll




                            Zend Framework'e Hızlı Giriş       15
Nasıl Kurulur?
• Bilgisayarınızı yeniden başlatın...




                    Zend Framework'e Hızlı Giriş   16
Nasıl Kurulur?
• ZF Tool:
• Start -> Run -> cmd
  – Test:
     • zf show version
     • zf show phpinfo




                         Zend Framework'e Hızlı Giriş   17
Proje Oluşturma
• ZF Tool:
• Start -> Run -> cmd
  – cd d:zf
  – mkdir zfsite
  – zf create project zfsite




                      Zend Framework'e Hızlı Giriş   18
Proje Oluşturma
• Test:
  – http://zfsite.local




                      Zend Framework'e Hızlı Giriş   19
Dizin Yapısı
•   zfsite
•   |-- application
•      |-- Bootstrap.php
•      |-- configs
•      | -- application.ini
•      |-- controllers
•      | -- ErrorController.php
•      | -- IndexController.php
•      |-- models
•       -- views
•          |-- helpers
•           -- scripts
•             |-- error
•             | -- error.phtml
•               -- index
•                 -- index.phtml
•    -- library
•    -- public
•      |-- .htaccess
•      -- index.php
•    -- tests
•       -- application
•           -- bootstrap.php
•       -- library
•           -- bootstrap.php
•       -- phpunit.xml




                                    Zend Framework'e Hızlı Giriş   20
Proje Ayarları
• ZF Tool:
• Start -> Run -> cmd
  -cd d:/zf/zfsite
     • zf enable layout




                          Zend Framework'e Hızlı Giriş   21
Proje Ayarları
• Layout için ayarlar - 1
  – Güncelle:
  – d:zfzfsiteapplicationconfigsapplication.ini
     • production
        –resources.view[] =

        – Örnek dosya için: sample-applicationapplication.ini




                         Zend Framework'e Hızlı Giriş            22
Proje Ayarları
• Layout için ayarlar - 2:
   – Güncelle
      • d:zfzfsiteapplicationBootstrap.php
         – Örnek dosya: sample-applicationbootstrap.php
         –   protected function _initDoctype()
         –   {
         –            $this->bootstrap('view');
         –            $view = $this->getResource('view');
         –            $view->doctype('XHTML1_STRICT');
         –   }




                          Zend Framework'e Hızlı Giriş      23
Proje Ayarları
• Layout için ayarlar - 3:
   – Güncelle
      • d:zfzfsiteapplicationlayout.phtml
         – Örnek dosya: sample-applicationlayout1.phtml
         <?php echo $this->doctype() ?>
         <html xmlns="http://www.worg/xhtml">
         <head>
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
           <title>Zend Framework Quickstart Application</title>
         </head>
         <body>
           <?php echo $this->layout()->content ?>
         </body>
         </html>


                            Zend Framework'e Hızlı Giriş                       24
Proje Ayarları

• Veritabanı ayarları
  – Start -> run -> cmd
     • cd d:zfzfsite
     • zf configure db-adapter
       "adapter=PDO_MYSQL&dbname=zfsitedb&host=localh
       ost&username=zfuser&password=zfpass" production
     • Uyarı: Şifreyi boş bırakırsanız ZF uygulamanızı webte
       açtığınızda hata verecektir.
  – Apache’yi kapatıp açın.
                      Zend Framework'e Hızlı Giriş         25
Örnek Uygulama

–PhpMyAdmin
 • create table articles;
    – Örnek sql dosyası için: sample-applicationarticles.table.sql




                     Zend Framework'e Hızlı Giriş                     26
Örnek Uygulama
– Güncelle:
– d:zfzfsiteapplicationlayoutsscriptslayout.phtml
   • Örnek uygulamamızın sayfasına link verelim.
   • Örnek kod: sample-applicationlayout2.phtml




                     Zend Framework'e Hızlı Giriş         27
Örnek Uygulama
– Controller ekleyelim
   • zf create controller Articles
– Articles Controller için listAction oluşturalım
   • zf create action list Articles
   • listAction kodunu yazalım
   • Örnek dosya için: sample-applicationcontroller.php
– listAction için view kodunu yazalım
   • Örnek dosya için: sample-applicationviews.list.php


– indexAction’ı listAction’a yönlendirelim
   • $this->_helper->redirector('list');
        – Örnek dosya için: sample-applicationcontroller.php



                               Zend Framework'e Hızlı Giriş     28
Örnek Uygulama

– Articles için db-table model ekleyelim
   • zf create db-table Articles articles
– Yeni Articles db-table model dosyamızı
  güncelleyelim
   • Örnek dosya için: sample-
     applicationdbtable.model.php




                   Zend Framework'e Hızlı Giriş   29
Örnek Uygulama

– ListAction’a ait list.phtml isimli view dosyamızı
  güncelleyelim:
   • Örnek dosya içeriği için: sample-applicationviews.list.phtml
– Test edelim:
   • http://zfsite.local -> Makaleler




                         Zend Framework'e Hızlı Giriş                30
Örnek Uygulama
– Articles için yeni makale ekleme formu oluşturalım
   • zf create form Articles
– ArticlesForm dosyamızı güncelleyelim:
   • Örnek dosya/kod için: sample-applicationforms.articles.php




                        Zend Framework'e Hızlı Giriş               31
Örnek Uygulama
• Yeni makale ekleyecek addAction sayfamızı
  oluşturalım:
   – zf create action add Articles
• addAction kodunu yazalım
   – Örnek dosya için: sample-applicationcontroller.php



• addAction için view kodunu yazalım
   – Örnek dosya için: sample-applicationviews.add.php



                            Zend Framework'e Hızlı Giriş   32
Örnek Uygulama

– Test:
   • http://zfsite.local -> Makaleler –> Ekle
   • http://zfsite.local -> Makaleler –> Listele




                         Zend Framework'e Hızlı Giriş   33

Zend Framework'e Hizli Giris

  • 1.
    Zend Framework’e HızlıGiriş Eser SAHİLLİOĞLU Bilkent Üniversitesi
  • 2.
    Konu Başlıkları • Zend Framework Nedir? • Özellikleri • MVC Nedir? • Gereksinimler? • Nasıl Kurulur? • Proje Oluşturma [Makaleler Modülü] • Dizin Yapısı • Proje Ayarları • Örnek Uygulama Zend Framework'e Hızlı Giriş 2
  • 3.
    Zend Framework nedir? •PHP 5 tabanlı • açık-kaynak kodlu • OO mantığında tasarlanmış ve kodlanmış bir web uygulamaları geliştirme altyapısıdır. Zend Framework'e Hızlı Giriş 3
  • 4.
    Özellikleri • PHP 5tabanlı • açık-kaynak kodlu • OO tasarım ve koda sahip • MVC yapısına uygun • MVC yapısı dışında PEAR mantığında da kullanılabilir • Genişletilebilir • Ticari ve kurumsal kullanım konusunda lisans sorunu yok Zend Framework'e Hızlı Giriş 4
  • 5.
    MVC Nedir? • MVC:Yazılım tasarımında ve geliştirmede kullanılan bir yaklaşım/konsept • M: Model – Veritabanı benzeri veri kaynakları ile ilgili işlemleri yapan katman • V: View – İşlenmiş verinin sunulduğu katman • C: Controller – V ile M arasındaki bağlantıyı sağlayan ve uygulamaya ait temel işlemlerin yapıldığı katman Zend Framework'e Hızlı Giriş 5
  • 6.
    Gereksinimler • +PHP bilgisi – ~deneyim – ~okuma • Web Sunucusu (+DBMS) – [Zend Server, WAMP, XAMPP vb.] • Zend Framework • Heves veya mecburiyet Zend Framework'e Hızlı Giriş 6
  • 7.
    Nasıl Kurulur? • İndirmeadresi: http://framework.zend.com Zend Framework'e Hızlı Giriş 7
  • 8.
    Nasıl Kurulur? • Açılacağıdizin: d:zf Zend Framework'e Hızlı Giriş 8
  • 9.
    Nasıl Kurulur? • Sistemdeğişkenleri güncellenir: – ;d:zfbin;d:zflibrary;d:xamppphp – Bakınız: Şekil 1 Zend Framework'e Hızlı Giriş 9
  • 10.
    Nasıl Kurulur? Şekil 1 Zend Framework'e Hızlı Giriş 10
  • 11.
    Nasıl Kurulur? • Apachevirtual host modülü etkinleştirilir: – d:xamppapacheconfhttpd.conf • Etkinleştirilecek satır: – Include conf/extra/httpd-vhosts.conf Zend Framework'e Hızlı Giriş 11
  • 12.
    Nasıl Kurulur? • Apacherewrite modülü etkinleştirilir: – d:xamppapacheconfhttpd.conf • Etkinleştirilecek satır: – LoadModule rewrite_module modules/mod_rewrite.so Zend Framework'e Hızlı Giriş 12
  • 13.
    Nasıl Kurulur? • Apache’yevirtual host tanımı eklenir: – d:xamppapacheconfextrahttpd-vhosts.conf • zfsite.local domain’i eklenir: – Örnek dosya için: sample-applicationapache.new.virtual.host.txt Zend Framework'e Hızlı Giriş 13
  • 14.
    Nasıl Kurulur? • Hostsdosyasına domain kaydı eklenir: – C:WINDOWSsystem32driversetchosts • 127.0.0.1 zfsite.local – Test: • http://zfsite.local Zend Framework'e Hızlı Giriş 14
  • 15.
    Nasıl Kurulur? • php.iniayarları yapılır: – Güncellenecek satır: • include_path = ".;d:xamppphppear;d:zflibrary" – Etkinleştirilecek satır: • extension=php_pdo_mysql.dll Zend Framework'e Hızlı Giriş 15
  • 16.
    Nasıl Kurulur? • Bilgisayarınızıyeniden başlatın... Zend Framework'e Hızlı Giriş 16
  • 17.
    Nasıl Kurulur? • ZFTool: • Start -> Run -> cmd – Test: • zf show version • zf show phpinfo Zend Framework'e Hızlı Giriş 17
  • 18.
    Proje Oluşturma • ZFTool: • Start -> Run -> cmd – cd d:zf – mkdir zfsite – zf create project zfsite Zend Framework'e Hızlı Giriş 18
  • 19.
    Proje Oluşturma • Test: – http://zfsite.local Zend Framework'e Hızlı Giriş 19
  • 20.
    Dizin Yapısı • zfsite • |-- application • |-- Bootstrap.php • |-- configs • | -- application.ini • |-- controllers • | -- ErrorController.php • | -- IndexController.php • |-- models • -- views • |-- helpers • -- scripts • |-- error • | -- error.phtml • -- index • -- index.phtml • -- library • -- public • |-- .htaccess • -- index.php • -- tests • -- application • -- bootstrap.php • -- library • -- bootstrap.php • -- phpunit.xml Zend Framework'e Hızlı Giriş 20
  • 21.
    Proje Ayarları • ZFTool: • Start -> Run -> cmd -cd d:/zf/zfsite • zf enable layout Zend Framework'e Hızlı Giriş 21
  • 22.
    Proje Ayarları • Layoutiçin ayarlar - 1 – Güncelle: – d:zfzfsiteapplicationconfigsapplication.ini • production –resources.view[] = – Örnek dosya için: sample-applicationapplication.ini Zend Framework'e Hızlı Giriş 22
  • 23.
    Proje Ayarları • Layoutiçin ayarlar - 2: – Güncelle • d:zfzfsiteapplicationBootstrap.php – Örnek dosya: sample-applicationbootstrap.php – protected function _initDoctype() – { – $this->bootstrap('view'); – $view = $this->getResource('view'); – $view->doctype('XHTML1_STRICT'); – } Zend Framework'e Hızlı Giriş 23
  • 24.
    Proje Ayarları • Layoutiçin ayarlar - 3: – Güncelle • d:zfzfsiteapplicationlayout.phtml – Örnek dosya: sample-applicationlayout1.phtml <?php echo $this->doctype() ?> <html xmlns="http://www.worg/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Zend Framework Quickstart Application</title> </head> <body> <?php echo $this->layout()->content ?> </body> </html> Zend Framework'e Hızlı Giriş 24
  • 25.
    Proje Ayarları • Veritabanıayarları – Start -> run -> cmd • cd d:zfzfsite • zf configure db-adapter "adapter=PDO_MYSQL&dbname=zfsitedb&host=localh ost&username=zfuser&password=zfpass" production • Uyarı: Şifreyi boş bırakırsanız ZF uygulamanızı webte açtığınızda hata verecektir. – Apache’yi kapatıp açın. Zend Framework'e Hızlı Giriş 25
  • 26.
    Örnek Uygulama –PhpMyAdmin •create table articles; – Örnek sql dosyası için: sample-applicationarticles.table.sql Zend Framework'e Hızlı Giriş 26
  • 27.
    Örnek Uygulama – Güncelle: –d:zfzfsiteapplicationlayoutsscriptslayout.phtml • Örnek uygulamamızın sayfasına link verelim. • Örnek kod: sample-applicationlayout2.phtml Zend Framework'e Hızlı Giriş 27
  • 28.
    Örnek Uygulama – Controllerekleyelim • zf create controller Articles – Articles Controller için listAction oluşturalım • zf create action list Articles • listAction kodunu yazalım • Örnek dosya için: sample-applicationcontroller.php – listAction için view kodunu yazalım • Örnek dosya için: sample-applicationviews.list.php – indexAction’ı listAction’a yönlendirelim • $this->_helper->redirector('list'); – Örnek dosya için: sample-applicationcontroller.php Zend Framework'e Hızlı Giriş 28
  • 29.
    Örnek Uygulama – Articlesiçin db-table model ekleyelim • zf create db-table Articles articles – Yeni Articles db-table model dosyamızı güncelleyelim • Örnek dosya için: sample- applicationdbtable.model.php Zend Framework'e Hızlı Giriş 29
  • 30.
    Örnek Uygulama – ListAction’aait list.phtml isimli view dosyamızı güncelleyelim: • Örnek dosya içeriği için: sample-applicationviews.list.phtml – Test edelim: • http://zfsite.local -> Makaleler Zend Framework'e Hızlı Giriş 30
  • 31.
    Örnek Uygulama – Articlesiçin yeni makale ekleme formu oluşturalım • zf create form Articles – ArticlesForm dosyamızı güncelleyelim: • Örnek dosya/kod için: sample-applicationforms.articles.php Zend Framework'e Hızlı Giriş 31
  • 32.
    Örnek Uygulama • Yenimakale ekleyecek addAction sayfamızı oluşturalım: – zf create action add Articles • addAction kodunu yazalım – Örnek dosya için: sample-applicationcontroller.php • addAction için view kodunu yazalım – Örnek dosya için: sample-applicationviews.add.php Zend Framework'e Hızlı Giriş 32
  • 33.
    Örnek Uygulama – Test: • http://zfsite.local -> Makaleler –> Ekle • http://zfsite.local -> Makaleler –> Listele Zend Framework'e Hızlı Giriş 33