Bundan böyle bulmak için çok zaman harcadığım -evet, unutkan biriyim- küçük detayları burada yayımlayacağım.
İlk olarak, bulmak için son 20 dakikamı harcadığım -tamam, henüz Google'ı kullanmayı bilmiyor olabilirim- bir problemin çözümünü yazacağım.
pear upgrade PEAR
Evet, 20 dakika harcamaya değmeyecek kadar kısa bir çözüm :) Yukarıdaki komutu, komut satırında(Win + R | cmd) çalıştırınca PEAR versiyonumuzu güncellemeye başlıyorsunuz.
Bir şekilde bu yazıyı okuyor ve PEAR ile ilgileniyorsanız, benim gibi kurulu paketlerinizin örümcek ağı tutma ihtimali mevcut :) Ki bu da zaman zaman paketler arasında uyumsuzluk yaratabiliyor (bkz: ben bugün bunu gördüm). Bunun içinde tüm paketlerimizi aşağıdaki komut yardımıyla güncelleyebiliyoruz:
pear upgrade-all
Bu arada, son olarak içimi dökmek istediğim bir konu var: Resmi PEAR ve Smarty dökümantasyonundan nefret ediyorum!
Bildiğiniz gibi autocomplete niteliği tıpkı target gibi web standartlarına uygun değil. Bu günlük kullanımda pek bir sorun teşkil etmese de benim gibi web standartlarına takıntılı geliştiriciler için epey büyük bir sorun :)
Bunu aşabilmek için imdadımıza JavaScript yetişiyor. Biz jQuery kütüphanesini kullanacağız:
$("input[@class='autocomplete']").each(function(){
$(this).attr("autocomplete", "off");
});
Kullanımı:
<input type="text" class="autocomplete" name="frmAra" />
Bu şekilde niteliği class ve değeri autocomplete olan tüm input elementlerine autocomplete = "off" niteliği eklenir.
Tabii kullanım şekline göre gerekli değişiklikler yapılarak -örneğin tüm input elementlerine uygulanabilir- kullanılabilir.
Savaşta her zaman kazanan haklıdır. Bu yüzden 60 yılı aşkın bir süredir her türlü ortamda sadece Almanya'nın Yahudi soykırımından bahsedilir. Oysa tarihte kamuoyunun bilmesi gereken ama gizlenmiş pek çok soykırım vardır. Bunlardan biri olan Sovyetler Birliği'nin Beketovka'da yaptıklarından daha önce bahsetmiştim. Şimdi de Amerika'nın -bilinen- soykırımlardan sadece biri olan Büyük Tokyo Bombardımanı hakkında mutlaka okunması gereken bu yazıyı paylaşıyorum.
Kaynak: ek$i sozluk
Bazen farklı bir formatta aldığımız tarih bilgisini, farklı bir formata çevirmemiz gerekir. Bunun için ya PHP'nin list() fonksiyonunu ya da data_parse() fonksiyonunu kullanıp çeşitli işlemler yapmışızdır(ki daha pek çok yöntemi de vardır).
Bu yazıda, strftime() fonksiyonunu kullanıp tarihimizi nasıl istediğimiz formata çevireceğimizi anlatmaya çalışacağım.
Sözdizimi
string strftime(string tarih_formatiniz [, int tarih ])
Sözdiziminde de görüldüğü gibi fonksiyonun ikinci parametresi kullanmak zorunda değiliz. Şayet kullanmazsak, belirtilen formata uyacak şekilde o anki tarihi döndürür. Ayrıca, opsiyonel olarak setlocale() fonksiyonunu kullanarak yerel ayarlara göre sonuç döndürmesini sağlayabilirsiniz(Örneğin ay ve/veya günü Türkçe olarak yazdırabiliriz). Ancak setlocale() fonksiyonu, IIS veya Windows işletim sistemi üzerinde Apache kullanıyorsanız çalışmayacaktır. setlocale() fonksiyonu bu yazının konusu olmadığından, PHP'nin çevrimiçi dökümantasyonundan konu hakkında ayrıntılı bilgi alabilirsiniz.
Kullanımı
Bu kadar konuştuktan sonra örneğimize geçelim :) Aşağıdaki örneğimizde, "Mon Mar 17 08:18:01 2008" formatındaki tarihimizi "2008-03-17 08:18:01" şeklinde yazdıracağız.
<?php
$formatlanacak_tarih = "Mon Mar 17 08:18:01 2008";
$yeni_tarih = strftime("%Y-%m-%d %H:%M:%S", strtotime($formatlanacak_tarih));
echo $yeni_tarih;
?>
strtotime() fonksiyonu, karakter katarı(string) tipindeki değeri, UNIX Timestamp* tarih biçimine çevirir.
Şu sıralar CodeIgniter'dan vazgeçip, Symfony'yi incelemeye başladım. Symfony, 2005 yılından beri geliştirilen, açık kaynaklı PHP MVC(Model-view-controller) framework'ü. Evet, başlangıç için gereğinden fazla basit bir açıklama olsa da Yahoo! geliştiricilerinin projeye destek verdiğini ve güzide sosyal imleme servisi del.icio.us'ın yeni versiyonunda Symfony'den yararlandıklarını söyleyerek projenin yeteneklerini bir nebze anlatabileceğini umuyorum.
Veritabanı işlemlerini, bir O/RM(Object/Relational Mapping, ORM, O/R mapping) frameworkü olan Propel yardımıyla gerçekleştiriyoruz. O/RM, ilişkisel veritabanlarında(RDBMS) bulunan tablolar ile uygulama tarafında bulunan nesnelerin biribiriyle ilişkilendirilmesine verilen bir terimdir. O/RM için, pek çok ihtimal göz önünde bulundurularak hazırlanmış frameworkler bulunmaktadır(Java platformu için Hibernate, .Net platformu için NHibernate ve LINQ) ancak megolamaninin sınırlarında gezen biriyseniz kendi frameworkünüzü de yazabilirsiniz. O/RM araçları, MVC hiyerarşisinde persistence layer(veri erişim katmanı) olarak adlandırılırlar. Fazla uzatmadan, O/RM araçlarının görevlerini(yani Symfony için Propel'in) şöyle açıklayabiliriz: Uygulama tarafında ilişkilendirdikleri(buna mapping diyorlar) nesneler arasında veri aktarımını, geliştiriciyi SQL sorgularıyla vs. uğraştırmadan sağlar.
Ayrıca, çok methedilen dökümantasyonunun pek okunabilir olduğunu söyleyemem. Bir süre sonra gözü epey yoruyor. Bunun yerine Symfony'yi yakından tanımak için hazırlanan örnek "My First Project"'i indirip incelemek daha faydalı olabilir.
Yazının devamını okumak için tıklayın.
google javascript php yaptıklarım
Yayımlanan yazılar, kaynak gösterildiği müddetçe kullanılabilir.
Yapılan yorumların sorumluluğu yazarına aittir.