Zırvalama Tahtası symfony, debian, PHP5, SQL ve pek çok ayrıntı

1Dec/080

ve symfony 1.2 stable

Dün (30 kasım pazar 2007) akşam saat 1:30 sıralarında symfony 1.2 stable sürümü duyuruldu, bununla beraber artık symfony içerisinde plugin olarak yer alan Propel’in 1.3 versiyonuna geçildi, bu güncelleme ile performans üzerinde bir artış olacağından kuşkunuz olmasın. Symfony 1.2 ile gelen yenilikler aslında 1.1 ile duyurulmuştu bunlardan en önemlileri, framework’ü oluşturan alt sistemlerin parçalanması ile ortaya çıkan bağımsız parçalar, task, form, routing ve test sistemi arasında yapılan yeni iyileştirmeler. özellikle task sisteminde yeni eklenen ask ve askConfirmation ile kendi yazacağımız task’lar için kullanıcıdan interaktif veri alabileceğiz.

Symfony 1.2′nin neler getirdiğine ilişkin daha detaylı bilgiyi What’s new sayfasından alabilirsiniz. mevcut uygulamalarınızı güncellemek için ise bu adresi kontrol etmenizde fayda var, ardından yararlı bilgiler sayfasına bir göz atın.

22Nov/08Off

symfony 1.2RC1

symfony projesinden bir son dakika gelişmesi, 1.2RC1 sürümü duyuruldu, elbette şu an için production içerisinde kullanmak için henüz yeterli olgunlunluğa ulaşabilmiş değil ancak bu hızla ilerlerse sanırım yılbaşı için güzel bir hediye alacağız, 1.2 stable ;) symfony 1.2′deki en büyük değişiklik yeni propel sürümü 1.3 kullanımı, Creole db abstraction layer yerine phpnin native PDO arayüzü ile daha hızlı çalışan bir propel kütüphanesi, Request nesnesi içerisindeki GET, POST constantlarının integer değerlerinin değiştirilmesi, (integer yerine artık uppercase method adı geliyor (string GET)), eğer benim gibi 1.1 ile geliştirmekte olduğunuz bir projeniz var ise 1.2 sürümüne yükseltmekte fazla acele etmeyiniz, ama yinede http://www.symfony-project.org/installation/1_2/upgrade adresine göz atmanızda fayda var,
Bol eğlenceler,

3Aug/080

php 5.3 alpha 1

Yeni duyurulan 5.3 alpha 1 versionunu gerçekten ilginç özellikler barındırıyor, bunlardan en ilginç olanı ise, namespace, late static bindings ve lambda closures desteği,

namespace‘ler sayesinde artık aynı isimde sınıfların kullanılması problem olmaktan çıkacaki,, tıpkı python’da olduğu gibi.

lambda closures desteği sayesinde ise bloklar içerisinde fonksiyonlar tanımlanabilecek
ve late static bindings sayesinde extend edilen sınıf içerisinde hangi sınıf bizi extend etmiş bilebileceğiz artık.

22Jan/080

Yeni yılda yeni symfony sürümü (1.0.11)

2008'in ilk symfony sürümü bu gün 1.0.11 ile duyuruldu, her yeni sürümde olduğu gibi bu
sürümde bugfix içeriyor, yeni özellikler için (sfForm ve yeni validation sistemi gibi)
1.1 versiyonunu bekleyemeye devam edeceğiz. 1.0.11 sürümünde bulunan bugfixlerden bazıları ise şöyle,

  • r6765, r6766: getPresentationFor() methodu içerisindeki hata mesajları düzeltildi (hata #1527)
  • r6764: sfPager class'ı içerisinde bulunan haveToPaginate() methodundaki mantık hatası düzeltildi (hata #1512)
  • r6768, r6769: sfWebRequest içerisinde mime type caching eklendi (hata #1811, #1846)
  • r6761, r6762: text olmayan içerikler için karakter seti gönderilmesi engellendi (ie'nin kafası karışıyordu :) ) (hata #1811, #1968)
  • r6743: dökümantasyon içerisinde bulunan yazım hataları (hata #2580, #2596, #2518)
  • r6740, r6741: creole içerisinde bulunan postgreSQL için sequence listesindeki hata düzeltildi (propel-build-schema) (hata #2584)
  • r6987, r6988: sfWebresponse.class.php içerisinde bulunan caching-Bug'ı düzeltildi (hata #2764)
  • r6649: 'Content-Type' HTTP başlık değerinin tekrar edilmesi düzeltildi (hata #1756, #2557, #2402, #2398)

Her geçen gün daha güçlü ve daha stabil bir framework sahibi oluyoruz ;)

21Dec/070

symfony 1.0.10 yayınlandı.

Fabien'nin geçenlerde duyurduğu üzere bir symfony sprint gerçekleşti (aslında şu anda hala devam ediyor), katılımcılarında yardımı ile 1.0.10 duyuruldu, her güncelemede olduğu gibi yeni bir feature içermeyen bu sürümde bir kaç önemli bug giderildi,

  • r6371: veri tabanı bağlantılarında unix domain socket kullanılabiliniyor artık.
  • r6469: sfOutputEscaperObjectDecorator::toString() methodunda bulunan exception kaldırıldı (PHP 5.2.5 versiyonunda toString içerisinden exception fırlatamıyoruz)
  • r6614: sfRouting içerisinde magic_quotes_gpc() dikkate alınıyor.

Naçizene bende sprint etkinliğine katıldım ve bir kaç adet yamayı trac üzerine gönderdim. Bakalım, yamalar kabul edilip core içerisine girecek mi?

29Nov/070

Symfony 1.0.9 duyuruldu

Yeni symfony sürümü ile pek çok bug giderilmiş, pek şık olmuş, cuk oturmuş. Şu sıralar yoğunluğumu 1.1 versiyonu üzerine kod okuma ve test ile geçirmek istesemde şu an için bu pek mümkün gözükmemekte. Yakın zamanda 1.1 ile ilgili ufak tefek ip uçlarını yazmak istiyorum ancak sanırım biraz daha zaman geçmesi gerekecek. Yeni symfony versiyonuna gelince,

Yeni versiyonda ki önemli değişiklikler şunlar,
* sfRouting artık numeric routing kurallarını da destekliyor, bunun anlamı /module/action/10/deneme/falanca gibi bir url kuralı yazabilirsiniz.
* Radio buttonlar aynı id'leri üretiyordu, artık üretmiyor
* Creole ve Propel içerisinde bulunan tarih ile ilgili bug giderildi, pek leziz oldu,
* sfRouting.class.php içerisinde bulunan eksik hata mesajları eklendi, daha bir açıklayıcı olduk hatalar konusunda peki bi şugardır kendileri.

Bu haftalık bu kadar, önümüzdeki hafta görüşmek ümidi ile...

19Nov/070

Symfony 1.1 için geri sayım

Symfony 1.1 sürümüne doğru ilerlerken oldukça radikal değişiklikler geçiriyor, özellikle artık singleton'lardan kurtulup multi singleton design pattern kullanılır hale getirildi, artık sadece sfContext nesnesi singleton, diğer sınıflar ise multi singleton, önemli değişikliklerden bir diğeri ise ana sınıflar ve methodlar için event kullanabilecek olmamız, her hangi bir durum için bir event tanımlayabilir ve bu event için post/pre methodlarını uygulamamızın çekirdek yapısına hiç dokunmadan çalıştırılmasını sağlayabiliriz.
Koş developer koş daha bitmedi, yeni validation sisteminde Any / All / Or gibi mantıksal doğrulama yapabilecek olmamız özellikle karmaşık form doğrulanmasında oldukça kolaylık sağlayan bir yapı oluşturdu,

örn: Karmaşık form verisi doğrulama yapısı

($a && ($b || $c ));

Yeni form sınıfları içerisinde birde sfPropelFrom varki tadından yenmez bir gelişme oldu, bir propel nesnesinden kolayca formlarımızı oluşturabilir (elbette xhtml destekli ), ve kaydedebiliriz. Evet hepimiz form hazırlamaktan nefret ediyoruz.

form sınıfımızı oluşturalım

class BookForm extends BaseBookForm
{
  public function configure()
  {
    //Form'umuz birden çok dili desteklesin..
    $this->embedI18n(array('en', 'fr'));
    $this->widgetSchema['en']->setLabel('en', 'English');
    unset($this['created_at']);
 
    //form fieldları için doğrulama sınıflarını bildir.
    $this->validatorSchema['foo'] = new sfValidatorPass();
    $this->widgetSchema['foo'] = new sfWidgetIdentity();
 
    // Varsayılan değerleri form içerisine gir.
    $this->setDefault('published_on', time());
  }
}

Oluşturulan form sonrasında, kullanıcıdan gelen veriyi veri tabanına yazalım.

class bookActions extends sfActions
{
  public function executeEdit($request)
  {
    $this->book = BookPeer::retrieveByPk($request->getParameter('id'));
    $this->form = new AuthorForm($this->book);
    // Eğer method post ise
    if ($request->isMethod('post'))
    {
      //Form verilerini kullanıcıdan gelen book array'i içerisinden al,
      $this->form->bind($request->getParameter('book'));
      //Form verilerinin doğrulamasını yap
      if ($this->form->isValid()) 
      {
        // Form'u veri tabanına kaydet...
        $book = $this->form->save();
        //Aferim hadi son halini kullanıcıya gösterelim...
        $this->redirect('@book?id='.$book->getId());
      }
    }
  }
}

Henüz form işlemlerini handle edecek olan sfFrom ve sfFormField nesneleri svn deposuna commit edilmedi, Fabien ay sonuna doğru bu iki sınıfın tamamlanacağını ve depodaki yerini alacağını dünkü blog girdisinde biz symfony geliştiricilerine (kullanıcılarına) duyurdu, e bizde pek bir sevindirik olduk, oldukmu? Olduk :)

Dur hemen kaçma, daha bitmedi :) Yeni symfony versiyonunda cli kullanarak yapabildiğimiz şeyleri action içerisindende yapabileceğiz, pek bir şugar olacak :D

Yeni validation sistemi ve diğer özellikler için şu anda tutorial tadında bir dökümantasyon ne yazık ki mevcut değil, en kısa ve hızlı öğrenme methodu olarak svn deposundan kodların alınıp test dizinlerinde nelerin nasıl yapıldığını görebilirsiniz ve ek olarak Fabien'in Uluslar arası php konferansı sırasında kullandığısunuma göz atabilirsiniz.

14Oct/070

Symfony 1.0.8 duyuruldu

Tüm symfony 1.0.X güncellemelerinde olduğu gibi bu yeni sürümde sadece bugfix'leri içermekte, bununla birlikte bir iki önemli hata giderilmiş durumda, yeni sürüme güncelleme yaptıktan sonra "symfony cc" yapmayı ihmal etmeyin..

31Aug/070

PHP 5.2.4

PHP geliştirme takımı PHP5'in yeni sürümü olan 5.2.4'ü dün duyurdu, yeni version ile birlikte 120 kadar bug temizlenmiş ve 14 güvenlik hatası giderilmiş, geliştiriler PHP kullanıcılarının yeni sürüme geçmesini tavsiye ediyorlar. Sanırım her geliştiricinin rüyası 0 açık bug raporu olan tertemiz bir bugzilladır, PHP geliştirme takımı bu rüyayı gerçek yapabileceklermi bilmiyorum ama şu anda PHP5 için 504 adet açık bug (bu sayıya dökümantasyonda bulunan hatalar dahil değil) bulunuyor.

31Jul/070

Symfony Yeni yine yeniden…

Symfony yeni 1.0.6 sürümünü duyurdu bu sürümde yine daha önceki 1.0.X serisinde olduğu gibi sadece bugFix'ler yer alıyor. Eklenilmesi düşünülen özellikler için 1.1 sürümünü bekleyeme devam ediyoruz zaten Ağustos'un sonuna ne kaldı değilmi? BugFix'ler ise şöyle

  • r4752: fixed sfZendPlugin (#1941)
  • r4642: fixed sfWebRequest isSecure() (#1931)
  • r4641: fixed sfWebDebug css class ismi (#1982)
  • r4621: fixed _list_messages.php dosyasında çevrilmemiş mesajlar (#1969)
  • r4574: fixed sfTestBrowser::getAndCheck() içerisinde typo hatası
  • r4404: fixed sfTestBrowser::isResponseHeader() method (#1900)

Yeni sürüme yükseltme yaptıktan sonra symfony clear-cache komutunu vermeyi unutmayın.