Phpanywhere – Çevrimiçi php editörü

Phpanywhere bir çevrimiçi PHP editörü. Bir php editöründen beklenen bir çok özelliğe sahip. Örneğin kod renklendirmesinden kod tamamlamasına kadar çeşitli özelliklere sahip. Bunun dışında bit FTP istemcisine de sahip. Dolayısı ile FTP ile ulaşabildiğiniz tüm dosyalarınızı bu editör ile düzenleyebilirsiniz.

Belki Zend IDE ya da diğer IDE’ler gibi detaylı özelliklere sahip değil ama  herhangi bir Internet gezgininden projenizde değişiklik yapmak için ideal.

İster çok acil yapılması gereken küçük değişiklikler, ister yerel geliştirme olanağı olmayan projeler için son derece ideal ve kullanışlı.

Buradan ulaşabilirsiniz.

PHP kütüphaneleri (PHP Frameworks)

Uzun süre uygulamalarımı geliştirmek için gerekenleri kendim yazdıktan sonra bir framework kullanmaya karar verdim.

İlk iş olarak varolan PHP frameworkleri arasında uygun olanı seçmek için bir araştırma yaptım. Kullanmaya karar vermeden önce özellikle bir kaç framework arasında kararsız kaldım. En sonunda ise CodeIgniter’i kullanmaya karar verdim.

Ruby on Rails’in spektaküler denilebilecek başarısından sonra MVC tabanlı PHP frameworkleri de oldukça yaygınlaştı. Bir framework kullanmanın bir çok faydası var. Bunların başında hızlı uygulama geliştirme, tekrar kullanabilen kod gibi şeyler. Framework kullanmak veya kullanmamak konusuna daha başka bir ara değinebiliriz.

PHP için bir framework aramaya çıktığınız zaman karşınıza bir sürü seçenek çıkacaktır. Dolayısı ile seç,m yapmakta zorlanabilirsiniz. Benim başıma geldi. Bu yazıda da bu konuda ki deneyimleri anlatmaya çalışıyorum.

CodeIgniter

CodeIgniter Flame Logo

CodeIgniter, MVC yapısını kullanan bir framework. CodeIgniter’ın en büyük özelliği hafif bir framework olması. Burada hafif derken özelliklerinden bhsetmiyorum. CodeIgniter gereken kütüphaneleri sadece kullanacağı zaman yüklüyor. Bahsedilen hafiflik bu. Bunun haricinde diğer frameworkler arasında en iyi performansa sahip olanlardan biri.

CodeIgniter’i kurmak ve çalışmaya başlamak oldukça kolay. Beş dakika içinde çalışan bir CodeIgniter’a sahip olabilirsiniz. Aynı zamanda CodeIgniter incelediğim frameworkler arasında öğrenilmesi (en azından benim için) en kolayı idi. Codegniter ile çok kısa bir zamanda uygulama geliştirmeye başlayabilirsiniz.

Eğer hala PHP4 kullanmak gibi bir mecburiyetiniz varsa da CodeIgniter PHP 4 ile çalışıyor.

Bunun dışında her açık kaynaklı projede olduğu gibi en önemli etkenlerden biri de topluluk yani ‘community’. CodeIgniter’ın yardımsever bir topluluğu var. Dökümantasyonu yeterli ve kolay anlaşılır. Dökümantasyonda bulamadıklarınıza ise forumdan kolayca yanıt bulabilirsiniz.

Zend Framework

Zend Framework Logo

Zend Framework, adından da anlaşılacağı gibi PHP’nin ‘babası’ Zend tarafından destekleniyor. İlk çıktığı zaman fazla bir sükse yapmayan ama giderek daha da yaygınlaşan bir framework. Sadece PHP 5 ile çalışıyor. Tamamen OO programlama mantığı üzerine kurulu. Arkasında bulunan Zend desteği ile özellikle büyük projeler düşünülürek yaratılmış bir framework olduğunu düşünüyorum. Öğrenme eğrisi CodeIgniter ile karşılaştırılınca ilk zamanda biraz daha dik görünse de çok zor değil. İlk uygulamanızı yapmak CodeIgniter’dan biraz daha zaman alabilir, beş dakika yerine yirmi dakika…

Zend Framework’un son derece detaylı bir dökümantasyonu var. Aynı zamanda hem Zend’in desteğine hem de kalabalık bir topluluğa sahip.

CakePHP

CakePHP Logo

CakePHP diğerlerine göre kullanımı biraz daha farklı olan bir framework. Kendine özgü bir yapısı ve işleyişi var. Bu yüzden öğrenmesi biraz daha uzun sürüyor. Ama CakePHP’nin oldukça fazla taraftarı var. CakePHP’nin kendine özgü yollarını öğrendiğiniz zaman neredeyse çok az PHP bilgisi ile uygulamalar oluşturabilirsiniz.

Bu arada CakePHP de PHP 4 desteği veriyor. Bu arada Internet’te baktığım kadarı ile hız testlerinde CakePHP diğer frameworklere göre açık farkla geride.

Beni CakePHP’den soğutan şey, öğrenme eğrisindeki dikliği, kendine özgü tavizsiz yapısı ve yavaşlığı oldu.

Diğerleri

Yukarıda saydığım bu üç framework PHP frameworkleri arasında en yaygın olanları. Bu yaygınlık kullanıcı tabanı ve aktif gelişimine bağlı. Ama bunun yanında bakmanızda fayda olabilecek başka kaliteli ve kullanışlı PHP frameworkleri de var. Aşağıda listeleyeceklerimi kurup denemedim ama uzun süre araştırdım. Bu araştırmaya göre aşağıda adı geçenlerde ciddi alternatifler arasında. Daha çok bilgisi olanların, denemiş olanların yorumlarını bekliyorum.

  • Symfony (Diğerlerine en ciddi alternatiflerden biri. Denemedim. Oldukça kaliteli bir yapısı ve azımsanmayacak bir topluluğu var.)
  • Seagull PHP Framework
  • Akelos PHP Framework
  • Kohana (CodeIgniter’in üzerine kurulmuş ama sadece PHP 5′in OO özelliklerini kullanarak yazılmış. Henüz CodeIgniter kadar olgun değil. Topluluğu o kadar fazla değil.)
  • Ez Components
  • Prado

Sonuç

Bu bilgiler ışığında CodeIgniter’da karar kaldım. Geliştirdiğim bir proje’de (www.mataraga.com) kullandım ve memnun kaldığımı söylemeliyim. Tekerleiğ tekrar keşfetmeme konusunda büyük bir faydası var.

Bunun haricinde Zend Framework’e dalmış durumdayım. Diğer bir projeyi de Zend Framework kullanarak tamamlamayı düşünüyorum. Belki o zaman ikisi ile ilgili bir karşılaştırma yazabilirim.

Not: Karşılaştırma demişken, şu adreste bazı PHP frameworklerinin bir karşılaştırması var. İlgilenenler buraya da bakabilir.

Türkçe Şehir Listesi metin ve SQL dosyası

Geçenlerde bir proje için Türkçe şehirlerin listesine ihtiyacım oldu. Her ne kadar bir çok yerde benzer veriler bulunsa da hiç biri hemen alınıp kullanılarak bir betik tarafından kullanılacak şekilde değildi.

En sonunda iş başa düştü. Şehir listesini daya kullanılabilir bir hale soktum. Eğer bir gün bir şehir listesine ihtiyacınız olursa işinize yarayabilir.

Türkçe Şehir Kodları (metin dosyası utf-8)

Türkçe Şehir Kodları SQL (SQL – utf8)

Metin dosyasını için örnek PHP betiği:

Bu dosya basit bir şekilde metin dosyasını okuyarak bir “select box” oluşturuyor.


<?php
$dosya = file('sehir_kodlari.txt');
echo "<select name='sehir'>";
foreach($dosya as $satir){
 list($sehir, $plaka) = explode(' ', $satir);
 echo "<option value='$plaka'>$sehir</option>";
}
echo "</select>";
?>

Piwik, Açık Kaynak Web Analitik Yazılımı

Piwik, Açık Kaynak Web Analitik YazılımıBir web analitik programı, sitenize gelen ziyaretçiler, nereden geldikleri, nasıl geldikleri gibi sürü ile bilgi saülayan bir yazılımdır. Bugün neredeyse sayısız derece analitik ve istatistik programı var. Tabii bunları başında Google Analytics geliyor. Bedava ve herkesin kullanımına açık olan Google Analytics son derece becerekli, kullanışlı ve güzel görünen bir program. Bunun haricinde Clicky ve Mint gibi ücretli programlar da var. Tabii daha önce de dediğim gibi aslında bu konuda hem bedava hem de ücretli hizmet veren sayısız firma var. Ama bunların arasında bir tanesini ayrıca belirtmek lazım. Çünkü diğerlerinin aksine Piwik adındaki bu analitik programı açık kaynak.

Devamı için tıklayın

WordPress 2.5 test sürüşü

Wordpress LogoBelki biliyorsunudur, en ünlü kişisel yayın ve blog sistemi olan WordPress‘in yeni sürümü olan WordPress 2.5 Mart/Nisan gibi kullanıcılara sunulacak. Şu an için beta aşamasında. Eğer isterseniz bilgisayarınıza indirip test edebiliyorsunuz. Fakat kendi bilgisayarınızda bir test ortamı oluşturma fırsatınız yok ise yeni sürümü Su Aygırı’nda test edebilirsiniz.

Denemek için sunucuya koyduğum 2.5 sürümü diğer kullanıcılara da açık. Yönetici modunda girip kurcalama yapabilirsiniz. Eğer bir problem olmaz ise (hafta sonları olabilir :) ), yeni çıkan sürümleri her seferinde yüklemeyi hedefliyorum. Böylece 2.5 sürümüne giden yolda neler oluyor görebiliriz.

Bu adresen (Dosyaları kaldırdım. Artık deneme sürümü mevcut sayfasından indirebilirsiniz) giderek WordPress 2.5 sürümünü canlı olarak test edebilirsiniz. Unutmamak gerekir ki bu bir beta sürüm. Yani her zaman olması gereken şeyler olmayabilir. Yönetici modu açık. Yani serbest bir kurcalama yapabilirsiniz. Her saat başı veritabanı kendini sıfırlayacak (ya da en azından unut ediyoruz.) Dolayısı ile yapılan değişiklikler kalıcı olmayacaktır.

Deneme yapmak için admin kullanıcı adı ve suaygiri.com şifresi ile sisteme girebilirsiniz. Eğer daha fazlasını merak ediyorsanız [wp-testers] e-posta listesine de üye olmak isteyebilirsiniz.

Deneyimlerinizi bizimle de paylaşın! :)

Php header() fonksiyonu ve utf-8

Dün akşam PHP’de bir uygulama geliştirmeye çalışırken başıma bir şey geldi. Çözene kadar saatler geçti. Başkasının da başına gelebilir diye buraya yazıyorum.

Türkçe karakter içeren uygulamalar geliştirirken dosylarımı UTF-8 olarak kaydediyorum. Böylece bir sürü yerde Türkçe problemi ile karşılaşmıyorum. Fakat görünen o ki header() fonksiyonu UTF-8′den hiç hoşlanmıyor.

Devamı için tıklayın

Örümcekleri yakalamak

Internet ÖrümcekleriBir blogunuz varsa ve/veya içerik üreten herhangi bir siteye sahipseniz bu siteniz büyük ihtimalle örümcekler (bot) tarafından ziyaret ediliyordur. Özellikle arama motorları sayfalarınız indekslemek için bu yöntemi kullanıyorlar. Örnek olarak Google’ın örümceği Googlebot periyodik olarak sitenizi ziyaret ediyordur. Bu aslında iyi bir şey. Bu örümceklere yardımcı olmak amacı ile de robots.txt adlı bir dosya kullanılır. Bu dosya kısaca hangi örümceklerin sitede nerelere girmeye ve neleri okumaya veya indekslemeye izinleri olduğunu belirtir. Genelde örümcekler bu sınırlamalara saygı gösterirler. Bütün büyük arama motorlarının örümcekleride bunlara dahil. (Sonradan öğrendim ki MSN hariç. Büyük süpriz!)

Fakat bir örümcek yazmanın çok da zor olmadığı bu zamanlarda etrafta bir sürü kötü huylu örümcek de dolaşıyor. Sitenize gelen bu kötü huylu örümceklerin nedeni büyük ihtimalle ya spam yorumlar ya da içeriğinizi çalmaktır. Ve tahmin edersiniz ki bu kötü örümcekler robots.txt dosyanızı pek takmazlar. Bu benim de başıma geldi hem suaygiri.com’da hem de kişisel sitemde yayınladığım içerikler başka yerlerde ortaya çıkıyordu. İlk önce bunun bir kopyala yapıştır sorunu olduğunu düşündüm. Olabilir de. Ama bazı siteler o kadar fazla çalıntı içeriğe sahip ki bunun sadece kopyala – yapıştır ile olması çok zor gibi gözüküyor. Daha sonra Internet’te content scraping (içerik kazımak) ilgili bir yazı ile karşılaştım. O zaman dank etti. :)

Ufak bir betik ile bu örümcekleri yakalayıp IP veya “user-agent” sınırlaması ile uzak tutmak mümkün olabilir. Burada bir örneği mevcut.

Çözümün devamı için tıklayın.