| 
                
             | 
        
        
            
                
                    
                        | 
                            Seri 1 - PHP 5 ve Platform Bağımsız Temel Web Programcılığı | 
                        
                             | 
                                
                     
                    
                        
                            
	
    
		
            | Gönderiliyor lütfen bekleyin... |   
        
	 
    
 
                         | 
                     
                 
             | 
        
        
            
                
                Bir programlama 
  dilini öğrenme sırasında edindiğimiz deneyimler iletişim için kullandığımız 
  dilleri öğrenme sırasında edindiğimiz deneyimler ile nerdeyse aynıdır. İkisininde 
  belli kuralları vardır, kendilerini günceller, kişiden kişiye göre kullanımı 
  değişir ve en önemlisi zamanla daha iyi öğrenilir. Anahtarda burdadır zaten, 
  bir geliştirici öğrenme sürecinin bitmeyeceğini farkettiği zaman başarının kapısını 
  aralar.Tabi bunu bilemek sadece bir başlangıçtır; bu farkındalıktan faydalanmak 
  için en etkili yönetemi geliştirmek gerekmekte. Benim tercih ettiğim ve bir  
  kısmını bu seride bulabileceğiniz yöntemin bazı fazları bulunmakta. 
  
Faz 1: (Dil 
  hakkında genel kültür edinilmesi.) Efendim bu dil nedir, nerde kullanılır, avantajları 
  dezavantajları nelerdir? Internet üzerinde yeterince kaynağı varmıdır ? Hatta 
  yapabiliyorsanız iş olanakları nedir, son zamanlarda ne tarz firmalar bu kategoride 
  ilan vermiş ? Örneğin devlet kurumlarında daha çok IBM ’in hüküm sürdüğü aşikardır 
  bu anlamda şuan JAVA devlet pozisyonlarında daha geçerlidir fakat özel sektörde 
  ibreler şuan daha çok .NET platformunu göstermekte.  Peki PHP bu iki devin 
  arasında nerede ? Belki bu araştırmaları yaptıktan sonra PHP öğrenmekten vazgeçeceksiniz. 
  Bundandır ki ilerde daha çok vakit kaybetmemek veya pişman olmamak için bu adım 
  içerisinde yaptığınz araştırmalara özen göstermelisiniz. Bu konuda bir çok forumda 
  zaten tartışmalar süregelmekte ve devam edicektir; bunlardan da faydalanabilirsiniz 
  fakat buralardan kesin sonuç çıkarmak pek sağlıklı değil.
  
Faz 2: (Dil’in 
  çekirdeğinin öğrenilmesi.) Nedir dilin çekirdeği ? Esasında terim olarak biraz 
  yanlış ama tanıdık bir yaklaşım. Unix platformunda çoğu uygulamanın bir çekirdeği 
  bulunur bunlar uygulamanın hayati fonksiyonlarını içerir; ardından gelen diğer 
  fonksiyonlar uzantı olarak nitelendirilir. Çekirdek aynı zamanda dilin yapısınıda 
  içermektedir. Örnek olarak değişken tipleri ve bunlar için hazırlanmış temel 
  fonksiyonların veya mantıksal operatörlerin kullanımının öğrenilmesi. Bu öğrenme 
  süreci içerisinde belki arka plandaki çalışma prensipleride önemli olabilir, 
  burda eğer utopik bir yaklaşımda bulunacaksak çalışma prensipleri çok iyi öğrenilmeli. 
  Çünki vakti geldiğinde hata ayıklamak için daha büyük bir vakit kaybı ile çalışma 
  prensipleri kısmi olsada öğrenilmek zorunda kalınacak. Benim tavsiyem bu süreç 
  içerisinde dilin çekirdek yapısına hakim olunduktan sonra en azından çalışma 
  prensipleri hakkında genel bir fikir edinilmesi.
  
Faz 3: (Sürekli 
  Gelişim.) Artık yeni öğrendiğiniz dil ile uygulamalar geliştirebiliyorsunuz. 
  Peki ya yazılım esnasında uyguladığınız teknikler ne kadar verimli ? Okulda 
  öğrendiğiniz algoritmalar size yardımcı oluyor fakat pratik kullanımda geçerlimi 
  ? Uygulamanızdan yüksek stress altında da aynı verimi alacağınızdan eminmisiniz 
  ? Bu fazda uygulamalarımızın performansını geliştirmeye yönelmeliyiz ve yeni 
  teknikler öğrenmeliyiz. Tabiki sadece performans değil aynı zamanda geliştirdiğimiz 
  uygulamaların güvenlik yapısını nasıl geliştirebiliriz sürekli bunun arayışı 
  içerisinde olmalıyız. Tabiki dilin gelişimi bitmediğinden bir yandan da dil’deki 
  yenilikleri gözden geçirmeliyiz.
  
Okumakta olduğunuz 
  seride yukarda görmüş olduğunuz adımların hepsinden biraz bahsederken bunları 
  PHP5 ile bağdaştırıp elimden geldiğince güncel örnekler vermeye çalışacağım. 
  Açıkcası amacım bir kitap kadar yoğun içerik çıkarmak değil çünki bu okuması 
  çok sıkıcı hatta zaman zaman okurun dili bırakmasına sebep olabilen bir davranış; 
  keza ticari bir amaç da gütmediğimden olabildiğince anahtar noktaları size gösterip 
  daha çok bir kılavuz (yol gösteren) ortaya çıkarmak.
  
Web Programcılığı 
  ve PHP
  
Internet’in yagınlaşmaya 
  başladığı veya patladığı sene 1995 olarak belirtilir tabiki bundan önce internet 
  araçları üzerinde ARGE çalışmaları devam etmekteydi. Statik olarak hazırlnan 
  HTML web sayfaları insanları tatmin etmemeye başlar, çoğu kimsenin aklında kullanıcının 
  eylemlerinden etkilenen bir yapı oluşturma fikri vardır. Bunun için web uygulamaları 
  gerçekleştirilmelidir, burda ilk dişe dokunur adım linux üzerinde PERL için 
  hazırlanan CGI kütüphaneleri ile gözükür. PHP yaklaşımı itibari ile PERL’e çok 
  benzemektedir fakat CGI kütüphaneleri ile web uygulamaları oluşturmak gerçekten 
  kolay değildir. Bu esnada Apache web sunucusu geliştirme grubundan Rasmus Lerdorf 
  tarafından PHP (Personal Home Page) 1994 senesinde geliştirilir. İlk hedefi 
  kişisel sitesine gelen kullanıcıları takip etmektir; ardından PHP2 ile form 
  elemanlarının SQL cümleciklerine yerleştirilmesi ile PHP gelişimini sürdürür. 
  Zamanla PHP ’nin büyümesi sonucunda PHP geliştirme grubu kurulur burda iki isim 
  öne çıkar Zend Suraski ve Andi Gutmans.Bu iki kişi tarafından PHP3 ve PHP4 ’ün 
  etkili bir şekilde yorumlanıp çalışması için PHP içersine "Zend Engine" 
  (Zend Motoru) gömülür. Bu esnada Zend firması kurumsal anlamda PHP’ye destek 
  vermek ve geliştirici araçların hazırlanması için kurulur. PHP3 ve PHP4 içerisinde 
  bulunan Zend Engine ne yazık ki nesne yönelimli programlamaya (Object Oreinted 
  Programing "OOP") tam anlamıyla destek vermemekteydi ve geliştirilen 
  OOP tabanlı PHP uygulamalarıda ne yazık ki performans konusunda başarısız olmaktaydı. 
  Bunun üzerine Zend PHP5 için temel farklılığı oluşturan Zend Engine 2’yi OOP 
  ’ye tam destek verecek şekilde tasarlayıp bugün önümüze sundu. Peki 1994 ile 
  2004 arasında başka web programlama dilleri yokmuydu? PHP’nin ardından microsoft 
  tarafından ASP sürüldü fakat hem performans konusunda hem kütüphaneleri konusunda 
  ASP çok vasat bir çizgide idi. Macromedia tarafında ise web programlama dili 
  olan coldfusion tutulmadı. Yahoo gibi işlemci ve trafik yükü ağır olan kurumlar 
  ise kendi (scripting) dillerini geliştirmeyi tercih ettiler fakat bugün Yahoo 
  tüm altyapısını Rasmus Lerdorf ’un danışmalığında PHP’ye geçirmeye çalışmakta.
  
Web programcılığı 
  sadece internet programcılığını içermemekte. Bugün bir çok kurum dahili ağlarında 
  geliştirecekleri uygulamalarını web programları ile çözümlemeye çalışıyor çünki 
  web uygulamaları kullanıcı tarafında çalışan uygulamalara nazaran uygulamanın 
  dağıtılması ve bakımı konularında çok daha avantajlı.
  
Neden PHP 
  ?
  
  - Kullanışlı 
    ve etkili
 
    PHP bugüne kadar gördüğünüz öğrenilmesi ve yazılımı en kolay programlama dili. 
    C syntax’ı (yazılım biçimi) ile okuması, takip etmesi kolay aynı zamanda C 
    özelliklerini taşımasına rağmen C kadar katı kuralları olan bir dil değil. 
    Sürekli büyüyen kütüphanesinin her bilgi kaynağına erişemesi ile geliştirme 
    sürecini kısaltmakta. Aynı zamanda .NET, JAVA veya COM kütüphaneleri ile uyumlu 
    çalışıp, kaynaklarından faydalanabiliyorsunuz. 
     
  - Performanslı
 
    PHP bugüne kadar görebileceğiniz en hızlı web programlama dili. Bugün PHP 
    ’nin web uygulamalarında rakibi sanal makinalar olan .NET ve JAVA’dır. Sanal 
    makinalar kendileri için sistem kaynaklarını sömürürken uygulamanız arakada 
    çalışmak için can çekişir. Kaldı ki sanal makinaların iddası platform bağımsız 
    olmalarıdır ve zaten bu yüzden icad edilmiştir fakat PHP farklı bir yaklaşım 
    ile kaynakları en az kullanarak platform bağımsızlık konusunu çözümlemiştir. 
    Bildiğiniz üzere sanal makinalar ara derlenmeden geçmiş kodları bulunduğu 
    ortama göre son derlemeden geçirirler, bu şekilde platform bağımsız olurlar. 
    PHP ise her platform için PHP grubu tarafından uyumlu olacak şekilde geliştirilmiştir, 
    bu sayede arada bir sanal makinaya ihtiyaç duymaz. Ayrıca PHP’nin modüler 
    yapısı sayesinde kullanmayacağınız modülleri sistemden çıkarıp ortamı optimize 
    edebilirsiniz; bu ne yazık ki sanal makinalarda mevcut değildir. Bu yüzden 
    PHP herhangibi sanal makinadan defalarca daha performanslıdır.  
     
  - Güvenli ve 
    güncel
 
    PHP grubu en az 2 ayda bir sürüm günceller. Bu güncellemeler varsa bugların 
    telafisini ayrıca yeni özellikleri ve optimizasyonları içermektedir. Bu sayede 
    en güvenli ve güncel programlama dilidir. 
     
  - Herşeyden 
    bağımsız (işletim sistemi, sunucu, veritabanı)
 
    Daha evvel bir çok kere neden bir uygulamanın sunucudan , veritabanından veya 
    işletim sisteminden bağımsız olması gerektiğinin altını çizdim. Esasında anahtar 
    şu, eğer uygulamanız harici kaynaklardan bağımsız ise ister iş veren olun 
    ister geliştirici kaçınılmaz bir şekilde pazarınız genişliyor ve tercih sebebi 
    oluyorsunuz. .NET framework her ne kadar Microsoft tarafından platform bağımsız 
    olarak tanıtılsada bu Microsoft’un Windows’dan başka platformu tanımamasından 
    kaynaklanıyor; ama bugün web sunucuları tarafında bağımsız organizasyonların 
    yaptığı araştırma çoğunlukla Windows olmayan işletim sistemlerinin kullanıldığını 
    göstermekte.Tabiki bunda daha evvel bahsettiğimiz performans ve güvenlik 
    etkili olmakta. 
     
  - En başarılı 
    açık kod projesi 
 
    Bir çok açık kod projesi organizasyonel hatalar sonucu başarısız oluyor. Fakat 
    PHP hiç bi zaman bu tarz sorunlarla karşılaşmadı çünki arkasında Zend firması 
    var ve kurumsal bir çok ihtiyacı karşılıyor. Zend öylesine yabancı bir firma 
    değil, Zend PHP’yi geliştirenlerin firması bu sebepten PHP onların çocuğu 
    ve hiç bi zaman onu yalnız bırakmayacaklar. 
 
Uyarı: 
  Dökümanda görüceğiniz çoğu açıklama ve örnek PHP, Smarty, PEAR ve GTK kullanma 
  kılavuzundan alınmıştır. Peki kılavuz yerine neden bu dökümanı okumalısınız 
  ? Çünki kılavuz tecrübelerden ve kullanım tekniklerinden bahsetmez. Kılavuz 
  çok geniş içeriğe sahiptir yeni başlıyorsanız içerisinde kaybolma ve bunalma 
  ihtimaliniz var. Son olarakta ne yazık ki PHP kılavuzu Türkçe değil.
  
Serinin 
  İçeriği
  
  - Giriş
 
  - Çalışma Prensipleri
 
  - Kurulumu ve 
    Konfigrasyon 
 
  - Geliştirme Ortamı 
    / Zend Studio
 
  - Yazılım Biçimi
 
  - Değişiken Tipleri
 
  - Nesne Özellikleri 
    (PHP5’deki yenilikleri arayanlar için)
 
  - Operatörler 
    ve Döngüler
 
  - Fonksiyonlar
 
  - Diziler (Arrays) 
    ve Katarlar (Strings)
 
  - Hata Ayıklama 
    (Debugging)
 
  - Form İşlemleri
 
  - Oturum Yönetimi 
    (Sessions & Cookies)
 
  - Veritabanı Bağlantıları 
    (Veritabanı tiplerinden bağımsız uygulama geliştirmek)
 
  - XML İşlemleri
 
  - Web Servisleri 
    (PHP5’deki yeniliklerden biri daha)
 
  - Grafik İşlemleri 
    (GD Kütüphaneleri)
 
  - Harici Kütüphanelerin 
    Kullanılması
 
  - Macromedia Flash 
    İşlemleri (Mind Kütüphaneleri)
 
  - SMARTY (PHP 
    Arayüz motoru)
 
  - PEAR (PHP kütüphanelerine 
    eklenti)
 
  - GTK+ (PHP ile 
    görsel programlama)
 
 
Seriyi Hazırlayan 
: Sadun Sevingen (C#nedir?com Mono Bölümü Editörü) 
                
                Makale: 
                Seri 1 - PHP 5 ve Platform Bağımsız Temel Web Programcılığı PHP ile Programlama Ahmet İpek 
             | 
        
        
            | 
             | 
        
        
            | 
                 
             | 
        
        
            
                
                
                    
                        - 
                            
                        
 
                        - 
                            
Eklenen Son 10  
                         
                        - 
                            
Bu Konuda Geçmiş 10 
                         
                     
                    
                        
                            Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
                         
                        
                            Son Eklenen 10 Makale Yükleniyor
                         
                        
                            Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
                         
                     
                 
                
                
             | 
        
        
            | 
                
             |