SlideShare a Scribd company logo
Linux’ta Web Geliştiriciliği Kocaeli Üniversitesi Linux Günü Burak Oğuz EMO Ankara Şubesi FindikProject ve MyDLP Geliştiricisi 14 Mayıs 2010
İçerik ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache ,[object Object],[object Object]
Apache
Apache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache – Dosyalar ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache – Çok Süreçlilik Modülleri ,[object Object],[object Object],[object Object],[object Object]
Apache – Çok Süreçlilik Modülleri ,[object Object]
Apache – Prefork MPM ,[object Object]
Apache – Prefork MPM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache – Worker MPM ,[object Object]
Apache – Worker MPM ,[object Object],[object Object],[object Object],[object Object],[object Object]
Apache – Worker MPM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache - Belgeler ,[object Object],[object Object],[object Object]
Apache – httpd.conf  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Apache - httpd.conf ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache – httpd.conf ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Apache – Virtual Host ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
İsim tabanlı Virtual Host ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux ve Web Programlama ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP – ZendFramework ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP - CakePHP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PHP - Symfony ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java ,[object Object]
Java Web Geliştirme ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java - Maven ,[object Object]
Java - Spring ,[object Object],[object Object],[object Object],[object Object],[object Object]
Java - JSF ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java – Apache Wicket ,[object Object],[object Object]
Java – Google Web Toolkit ,[object Object],[object Object],[object Object]
Java ve Linux ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Python ,[object Object]
Python - Django ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby ,[object Object],[object Object]
Ruby – Ruby on Rails ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby – Ruby on Rails ,[object Object],[object Object],[object Object],[object Object]
Karşılaştırma ,[object Object]
Karşılaştırma OS : Ubuntu Gutsy Gibbon 7.10 Kernel : 2.6.22-15-generic CPU : Intel(R) Core(TM) Duo CPU T2600 @ 2.16GHz RAM : 2GB  http://blog.dhananjaynene.com/ Dil Sürüm Satır Sayısı İterasyon başına süre (mikrosaniye) Java Sun JDK 1.6.0.03 10186 1.6  Ruby ruby 1.9.0 (2008-04-14 revision 16006) [i686-linux] 63 89  ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux] 380 jruby : ruby 1.8.6 (2008-05-28 rev 6586) [i386-jruby1.1.2] 80 Python 2.5.1 41 225 192  2.5.1 with psyco 33 Jython 2.2.1 on JRE 1.6.0.03 884 632 PHP PHP 5.2.3-1ubuntu6.3 (cli) 85 593
Mono – Linux ama değil gibi de ,[object Object],[object Object],[object Object],[object Object],[object Object]
Mono – Linux ama değil gibi de ,[object Object],[object Object],[object Object],[object Object],[object Object]
Mono – ASP .NET ,[object Object],[object Object],[object Object]
Bunların Dışında ,[object Object],[object Object],[object Object],[object Object]
Dillerin ve IDElerin Kurulumu ,[object Object],[object Object]
Teşekkürler Sorularınız? [email_address]

More Related Content

What's hot

Php kursu-eyup
Php kursu-eyupPhp kursu-eyup
Php kursu-eyupsersld88
 
Php kursu-adana
Php kursu-adanaPhp kursu-adana
Php kursu-adanasersld88
 
ASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa DetaylarıASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa Detayları
zetshap
 
Php kursu-samsun
Php kursu-samsunPhp kursu-samsun
Php kursu-samsunsersld88
 
Php egitimi-eyup
Php egitimi-eyupPhp egitimi-eyup
Php egitimi-eyupsersld89
 
Php ozel-hocasi
Php ozel-hocasiPhp ozel-hocasi
Php ozel-hocasisersld89
 
Php kursu-konya
Php kursu-konyaPhp kursu-konya
Php kursu-konyasersld88
 
Php zirvesi
Php zirvesiPhp zirvesi
Php zirvesisersld89
 
Php odev-sitesi
Php odev-sitesiPhp odev-sitesi
Php odev-sitesisersld89
 
SVN & CVS by Eren SIMSEK
SVN & CVS by Eren SIMSEKSVN & CVS by Eren SIMSEK
SVN & CVS by Eren SIMSEK
erensimsek
 
Php en-iyi-kursu
Php en-iyi-kursuPhp en-iyi-kursu
Php en-iyi-kursusersld89
 
Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...
Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...
Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...
Serhad MAKBULOĞLU, MBA
 
Primeface
PrimefacePrimeface
Primeface
serserox
 

What's hot (20)

Php kursu-eyup
Php kursu-eyupPhp kursu-eyup
Php kursu-eyup
 
Php video
Php videoPhp video
Php video
 
Php kursu-adana
Php kursu-adanaPhp kursu-adana
Php kursu-adana
 
Php indir
Php indirPhp indir
Php indir
 
ASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa DetaylarıASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa Detayları
 
NedenPHP
NedenPHPNedenPHP
NedenPHP
 
Php kursu-samsun
Php kursu-samsunPhp kursu-samsun
Php kursu-samsun
 
Claroline sunusu
Claroline sunusuClaroline sunusu
Claroline sunusu
 
Php egitimi-eyup
Php egitimi-eyupPhp egitimi-eyup
Php egitimi-eyup
 
Php ozel-hocasi
Php ozel-hocasiPhp ozel-hocasi
Php ozel-hocasi
 
Php kursu-konya
Php kursu-konyaPhp kursu-konya
Php kursu-konya
 
Php zirvesi
Php zirvesiPhp zirvesi
Php zirvesi
 
Php odev-sitesi
Php odev-sitesiPhp odev-sitesi
Php odev-sitesi
 
Claroline sunusu
Claroline sunusuClaroline sunusu
Claroline sunusu
 
0439
04390439
0439
 
SVN & CVS by Eren SIMSEK
SVN & CVS by Eren SIMSEKSVN & CVS by Eren SIMSEK
SVN & CVS by Eren SIMSEK
 
Php en-iyi-kursu
Php en-iyi-kursuPhp en-iyi-kursu
Php en-iyi-kursu
 
Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...
Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...
Windows Server 2012 Kurulum Seçenekleri (Bare Metal, Minimal Server Interface...
 
Wordpress
WordpressWordpress
Wordpress
 
Primeface
PrimefacePrimeface
Primeface
 

Similar to 2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği

Php konferansi
Php konferansiPhp konferansi
Php konferansisersld89
 
Php seminerleri
Php seminerleriPhp seminerleri
Php seminerlerisersld89
 
Php semineri
Php semineriPhp semineri
Php seminerisersld89
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin Geleceği
Bora Yalcin
 
PHP Sunusu - 1
PHP Sunusu - 1PHP Sunusu - 1
PHP Sunusu - 1
Bilgisayar Kulübü
 
Php dokumani
Php dokumaniPhp dokumani
Php dokumanisersld89
 
Php teknikeri
Php teknikeriPhp teknikeri
Php teknikerisersld89
 
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve OnerilerGelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Mustafa Ileri
 
Php ornekleri
Php ornekleriPhp ornekleri
Php orneklerisersld89
 
Php kursu-avcilar
Php kursu-avcilarPhp kursu-avcilar
Php kursu-avcilarsersld88
 
Php kitaplari
Php kitaplariPhp kitaplari
Php kitaplarisersld89
 
Php kursu-esenler
Php kursu-esenlerPhp kursu-esenler
Php kursu-esenlersersld88
 
Php testleri
Php testleriPhp testleri
Php testlerisersld89
 
Php kursu-antalya
Php kursu-antalyaPhp kursu-antalya
Php kursu-antalyasersld88
 
Php kursu-tuzla
Php kursu-tuzlaPhp kursu-tuzla
Php kursu-tuzlasersld88
 
Php kursu-catalca
Php kursu-catalcaPhp kursu-catalca
Php kursu-catalcasersld88
 
Php cevaplari
Php cevaplariPhp cevaplari
Php cevaplarisersld89
 
Php ogretmeni
Php ogretmeniPhp ogretmeni
Php ogretmenisersld89
 
Php kursu-ankara
Php kursu-ankaraPhp kursu-ankara
Php kursu-ankarasersld88
 

Similar to 2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği (20)

Php konferansi
Php konferansiPhp konferansi
Php konferansi
 
Php seminerleri
Php seminerleriPhp seminerleri
Php seminerleri
 
Php semineri
Php semineriPhp semineri
Php semineri
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin Geleceği
 
PHP Sunusu - 1
PHP Sunusu - 1PHP Sunusu - 1
PHP Sunusu - 1
 
sunu (Asp.net -1)
sunu (Asp.net -1)sunu (Asp.net -1)
sunu (Asp.net -1)
 
Php dokumani
Php dokumaniPhp dokumani
Php dokumani
 
Php teknikeri
Php teknikeriPhp teknikeri
Php teknikeri
 
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve OnerilerGelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
Gelecegin Gelistiricileri Icin PHP Programlama Dili ve Oneriler
 
Php ornekleri
Php ornekleriPhp ornekleri
Php ornekleri
 
Php kursu-avcilar
Php kursu-avcilarPhp kursu-avcilar
Php kursu-avcilar
 
Php kitaplari
Php kitaplariPhp kitaplari
Php kitaplari
 
Php kursu-esenler
Php kursu-esenlerPhp kursu-esenler
Php kursu-esenler
 
Php testleri
Php testleriPhp testleri
Php testleri
 
Php kursu-antalya
Php kursu-antalyaPhp kursu-antalya
Php kursu-antalya
 
Php kursu-tuzla
Php kursu-tuzlaPhp kursu-tuzla
Php kursu-tuzla
 
Php kursu-catalca
Php kursu-catalcaPhp kursu-catalca
Php kursu-catalca
 
Php cevaplari
Php cevaplariPhp cevaplari
Php cevaplari
 
Php ogretmeni
Php ogretmeniPhp ogretmeni
Php ogretmeni
 
Php kursu-ankara
Php kursu-ankaraPhp kursu-ankara
Php kursu-ankara
 

More from Burak Oğuz

Açık Yenilik (Open Innovation)
Açık Yenilik (Open Innovation)Açık Yenilik (Open Innovation)
Açık Yenilik (Open Innovation)Burak Oğuz
 
Entrepreneurship incentives
Entrepreneurship incentivesEntrepreneurship incentives
Entrepreneurship incentives
Burak Oğuz
 
Innovation Policies and Places in China Korea Taiwan Japan
Innovation Policies and Places in China  Korea Taiwan JapanInnovation Policies and Places in China  Korea Taiwan Japan
Innovation Policies and Places in China Korea Taiwan JapanBurak Oğuz
 
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux 2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
Burak Oğuz
 
2010 Bilkent Pardus Günleri
2010 Bilkent Pardus Günleri2010 Bilkent Pardus Günleri
2010 Bilkent Pardus Günleri
Burak Oğuz
 
Pencereleri Kapatın
Pencereleri KapatınPencereleri Kapatın
Pencereleri Kapatın
Burak Oğuz
 
2010 BİLMÖK - EMO Sunumu
2010 BİLMÖK - EMO Sunumu2010 BİLMÖK - EMO Sunumu
2010 BİLMÖK - EMO Sunumu
Burak Oğuz
 
STPS 505 - Hacker Etiği Kitap Sunumu
STPS 505 - Hacker Etiği Kitap SunumuSTPS 505 - Hacker Etiği Kitap Sunumu
STPS 505 - Hacker Etiği Kitap Sunumu
Burak Oğuz
 
STPS 503 - Political Economy of Science and Technology
STPS 503 - Political Economy of Science and TechnologySTPS 503 - Political Economy of Science and Technology
STPS 503 - Political Economy of Science and Technology
Burak Oğuz
 

More from Burak Oğuz (9)

Açık Yenilik (Open Innovation)
Açık Yenilik (Open Innovation)Açık Yenilik (Open Innovation)
Açık Yenilik (Open Innovation)
 
Entrepreneurship incentives
Entrepreneurship incentivesEntrepreneurship incentives
Entrepreneurship incentives
 
Innovation Policies and Places in China Korea Taiwan Japan
Innovation Policies and Places in China  Korea Taiwan JapanInnovation Policies and Places in China  Korea Taiwan Japan
Innovation Policies and Places in China Korea Taiwan Japan
 
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux 2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
 
2010 Bilkent Pardus Günleri
2010 Bilkent Pardus Günleri2010 Bilkent Pardus Günleri
2010 Bilkent Pardus Günleri
 
Pencereleri Kapatın
Pencereleri KapatınPencereleri Kapatın
Pencereleri Kapatın
 
2010 BİLMÖK - EMO Sunumu
2010 BİLMÖK - EMO Sunumu2010 BİLMÖK - EMO Sunumu
2010 BİLMÖK - EMO Sunumu
 
STPS 505 - Hacker Etiği Kitap Sunumu
STPS 505 - Hacker Etiği Kitap SunumuSTPS 505 - Hacker Etiği Kitap Sunumu
STPS 505 - Hacker Etiği Kitap Sunumu
 
STPS 503 - Political Economy of Science and Technology
STPS 503 - Political Economy of Science and TechnologySTPS 503 - Political Economy of Science and Technology
STPS 503 - Political Economy of Science and Technology
 

2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği

  • 1. Linux’ta Web Geliştiriciliği Kocaeli Üniversitesi Linux Günü Burak Oğuz EMO Ankara Şubesi FindikProject ve MyDLP Geliştiricisi 14 Mayıs 2010
  • 2.
  • 3.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Karşılaştırma OS : Ubuntu Gutsy Gibbon 7.10 Kernel : 2.6.22-15-generic CPU : Intel(R) Core(TM) Duo CPU T2600 @ 2.16GHz RAM : 2GB http://blog.dhananjaynene.com/ Dil Sürüm Satır Sayısı İterasyon başına süre (mikrosaniye) Java Sun JDK 1.6.0.03 10186 1.6 Ruby ruby 1.9.0 (2008-04-14 revision 16006) [i686-linux] 63 89 ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux] 380 jruby : ruby 1.8.6 (2008-05-28 rev 6586) [i386-jruby1.1.2] 80 Python 2.5.1 41 225 192 2.5.1 with psyco 33 Jython 2.2.1 on JRE 1.6.0.03 884 632 PHP PHP 5.2.3-1ubuntu6.3 (cli) 85 593
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

Editor's Notes

  1. Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda sunucu sürecini yedekte tutmaya veya boşta bekletmeye çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk süreçlerin çatallanmasını beklemek gerekmez. Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl gerçekleştireceği StartServers, MinSpareServers, MaxSpareServers ve MaxClients yönergeleri ile düzenlenir. Apache kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez. Aynı anda 256’dan fazla isteğe hizmet sunacak sitelerin MaxClients değerini arttırmaları gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de sunucunun belleği diske takaslamasını önlemek için bu değeri azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha fazla bilgi edinmek için başarım arttırma ipuçları belgesine bakınız. Unix altında 80. portu dinleyebilmek için ana sürecin root tarafından çalıştırılmış olması gerekirse de çocuk süreçler Apache tarafından daha az yetkili bir kullanıcının aidiyetinde çalıştırılırlar. Apache’nin çocuk süreçlerinin kullanıcı ve gruplarını ayarlamak için User ve Group yönergeleri kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya yetkili olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı tutulmasına çalışılmalıdır. MaxRequestsPerChild yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı ne kadar sıklıkla yapacağını denetler.
  2. Çocuk süreçleri devreye almaktan tek bir süreç (ana süreç) sorumludur. Her çocuk süreç ThreadsPerChild yönergesinde belirtilen sayıda evre konuşlandırır. Bunlardan ayrı olarak, bir dinleyici evre bağlantıları dinleyip gelenleri işlenmek üzere bu sunucu evrelerinden birine aktarır. Apache daima, gelen isteklere hizmet sunmaya hazır yedek veya boştaki sunucu evrelerinden oluşan bir havuzu canlı tutmaya çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk süreçlerin çatallanmasını, dolayısıyla yeni evrelerin konuşlandırılmasını beklemek gerekmez. Başlangıçta çalıştırılacak çocuk süreçlerin sayısı StartServers yönergesinde belirtilir. Apache, çalışma süresi boyunca MinSpareThreads ve MaxSpareThreads yönergeleri ile belirtilen sınırlar dahilinde kalmak üzere gerektiğinde süreçleri öldürerek gerektiğinde yenilerini devreye alarak tüm süreçlerdeki toplam evre sayısını sabit tutmaya çalışır. Bu işlem kendiliğinden çok iyi yürüdüğünden bu yönergelere öntanımlı değerlerinden farklı değerlerin atanması nadiren gerekli olur. Aynı anda hizmet sunulabilecek istemcilerin sayısı (yani, tüm süreçlerin toplam evre sayısı) MaxClients yönergesi ile belirlenir. Etkin çocuk süreçlerin sayısı ise MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere bölünmesi ile elde edilir. Bu iki yönerge aynı anda etkin olabilecek çocuk süreçlerin ve her çocuk süreçteki sunucu evreleri sayısının üst sınırını belirler ve bu sınır sadece ana sunucu tamamen durdurulup yeniden başlatılarak değiştirilebilir. ServerLimit yönergesinin değeri etkin çocuk süreç sayısının üst sınırı olup MaxClients yönergesindeki değerin ThreadsPerChild yönergesindeki değere bölünmesi ile elde değere eşit veya bundan küçük olması gerekir. ThreadLimit yönergesinin değeri ise sunucu evreleri sayısının üst sınırını belirler ve ThreadsPerChild yönergesindeki değerden büyük veya ona eşit olması gerekir. Eğer bu yönergelere öntanımlı değerlerinden farklı bir değer atanacaksa bu atamaların diğer worker yönergelerinden önce yapılması gerekir. Sonlandırma sırasında etkin çocuk süreçlere ek olarak mevcut istemci bağlantılarını işleme sokmaya çalışan tek bir sunucu evresinden başka fazladan bir çocuk süreç etkin kalabileceği gibi sonlandırılacak süreç sayısının en fazla MaxClients olması gerekirse de gerçekte sayı bundan küçük olabilir. Şöyle bir işlemle tek bir çocuk sürecin sonlandırılması iptal edilerek bu gibi durumlara karşı önlem alınabilir: * MaxRequestsPerChild yönergesinin değeri sıfır yapılır. * MaxSpareThreads ve MaxClients yönergelerinin değerleri birbirine eşitlenir.
  3. Symfony is a web application framework for PHP projects. It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure. The very small number of prerequisites make symfony easy to install on any configuration; you just need Unix or Windows with a web server and PHP installed. It is compatible with almost every database system. In addition, it has a very small overhead , so the benefits of the framework don't come at the cost of an increase of hosting costs. Using symfony is so natural and easy for people used to PHP and the design patterns of Internet applications that the learning curve is reduced to less than a day. The clean design and code readability will keep your delays short. Developers can apply agile development principles (such as DRY , KISS or the XP philosophy) and focus on applicative logic without losing time to write endless XML configuration files. Symfony is aimed at building robust applications in an enterprise context . This means that you have full control over the configuration: from the directory structure to the foreign libraries, almost everything can be customized. To match your enterprise's development guidelines, symfony is bundled with additional tools helping you to test, debug and document your project. Last but not least, by choosing symfony you get the benefits of an active open-source community. It is entirely free and published under the MIT license . Symfony is sponsored by Sensio Labs , a French Web Agency well known for its innovative views on web development.
  4. In all the Wicket examples, you have to put all files in the same package directory. This means putting the markup files and the java files next to one another. It is possible to alter this behavior, but that is beyond the scope of this example. The only exception is the oblibatory web.xml file which should reside in the WEB-INF/ directory of your web application root folder. If you wish to start building this example, you may want to take a look at the Wicket Quickstart project, which provides a quick way of getting up and running without having to figure things out yourself. The Quickstart project contains the necessary build files (Ant and Maven), libraries, minimal set of Java and markup files and an embedded Jetty server to run your application without having to go through the whole build-deploy cycle. HelloWorldApplication.java Each Wicket application is defined by an Application object. This object defines what the home page is, and allows for some configuration. import org.apache.wicket.protocol.http.WebApplication; public class HelloWorldApplication extends WebApplication { /** * Constructor. */ public HelloWorldApplication() { } /** * @see org.apache.wicket.Application#getHomePage() */ public Class getHomePage() { return HelloWorld.class; } } Here you can see that we define wicket.examples.helloworld.HelloWorld to be our home page. When the base URL of our application is requested, the markup rendered by the HelloWorld page is returned. HelloWorld.java import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; public class HelloWorld extends WebPage { /** * Constructor */ public HelloWorld() { add( new Label("message", "Hello World!")); } } The Label is constructed using two parameters: "message" "Hello World!" The first parameter is the component identifier, which Wicket uses to identify the Label component in your HTML markup. The second parameter is the message which the Label should render. HelloWorld.html The HTML file that defines our Hello World functionality is as follows: <html> <body> <span wicket:id="message" id="message"> Message goes here </span> </body> </html> In this file, you see two elements that need some attention: the component declaration <span wicket:id="message"> the message Message goes here The component declaration consists of the Wicket identifier wicket and the component identifier message. The component identifier should be the same as the name of the component you defined in your WebPage. The message between the <span> tags is removed when the component renders its message. The final content of the component is determined by your Java code. web.xml web.xml In order to deploy our HelloWorld program, we need to make our application known to the application server by means of the web.xml file. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name> Wicket Examples </display-name> <filter> <filter-name> HelloWorldApplication </filter-name> <filter-class> org.apache.wicket.protocol.http.WicketFilter </filter-class> <init-param> <param-name> applicationClassName </param-name> <param-value> org.apache.wicket.examples.helloworld.HelloWorldApplication </param-value> </init-param> </filter> <filter-mapping> <filter-name> HelloWorldApplication </filter-name> <url-pattern> /* </url-pattern> </filter-mapping> </web-app> In this definition you see the Wicket filter defined, which handles all requests. In order to let Wicket know which application is available, only the applicationClassName filter parameter is needed. Also, notice the url-mapping to /*. The Wicket filter will only process requests that are Wicket requests. If a request is not Wicket related, the filter will pass the request on to the chain. This ensures that (static) resources outside the realm of the Wicket application, such as style sheets, JavaScript files, images and so forth will be served by the container.
  5. Şablon {% extends "base_generic.html" %} {% block title %}{{ section.title }}{% endblock %} {% block content %} <h1> {{ section.title }} </h1> {% for story in story_list %} <h2> <a href=" {{ story.get_absolute_url }} "> {{ story.headline |upper }} </a> </h2> <p> {{ story.tease |truncatewords :"100" }} </p> {% endfor %} {% endblock %}