Symfony 2: Setting Cookies

Symfony 2 is great but it’s not well documented yet and there is no documentation about cookie handling as well.

After a few code digging I’ve found the solution. As we know, basically, cookies are just HTTP headers and you can get them from requests or send with responses.

SymfonyComponentHttpFoundationResponse class has a public property named headers and its type is ResponseHeaderBag and ResponseHeaderBag has a method named setCookie. Voilà!

Now we can set cookies like this:

//in controller

$response = new Response();

$response->headers->setCookie(new Cookie(‘cookie_name’, ‘cookie_value’));

return $this->render(‘template_path’, array(..template_parameters…), $response);

///

As you can see setCookie method needs a Cookie object as parameter and it’s located in SymfonyComponentHttpFoundation. You can create a cookie object like this:

new Cookie($name, $value = null, $expire = 0, $path = ‘/’, $domain = null, $secure = false, $httpOnly = true);

That’s it!

Smarty Modifiers

Günlüğe yazmayalı oldukça uzun zaman olmuş…Gerek işlerin yoğunluğu, gerekse mevsimin yaz olması nedeniyle günlüğe yazı yazmak pek aklıma gelmedi açıkçası.

Bugün bir web uygulamasında smarty ile ilgili birşeyle uğraşırken smarty’nin yeri geldiğinde ne kadar faydalı bir yapı olabileceğini bir kere daha anladım. Neyse fazla uzatmayacağım.

Smarty Modifiers sayesinde Php dahili (?) fonksiyonlarını doğrudan Smarty Modifiers şeklinde, smarty değişkenlerini işlemek, düzene sokmak için kullanabiliyoruz. Hemen bir örnekle duruma açıklık getireyim.

Diyelimki Mysql‘den DATETIME ya da TIMESTAMP tipinde bir tablo verisi çektiniz. Ve bu veriyi Unix Timestamp şekline sokmak istiyorsunuz. Bunun için Php’nin strtotime fonksiyonunu kullanabiliriz pekala. Farzedelim ki bu fonksiyonu smarty template dosyası içinde kullanmanız gerekti. Bunun için tek yapmanız gereken smarty’nin register_modifier yordamını php dosyanınızın içinde kullanmak.


//Php dosyası
$smarty->assign(‘datetime’ , “2007-09-30 13:04:49”);
$smarty->register_modifier(‘s2t’, ‘strtotime’);
$smarty->display(‘template.tpl’);

//template.tpl
{$datetime|s2t} {* Buranin ciktisi 1191146689 seklinde olacak *}

Bu kadar…

Xmms / Audacious için Winamp ekolayzır ayarları

Şuradaki adresten winamp ekolayzır ayar dosyası indirilir. Daha sonra arşiv yöneticisi*[1] ile açılır. Arşivin içinden çıkan eq.preset dosyası xmms ya da audacious programlarından hangisini kullanıyorsanız onun ayar klasörünün*[2] içine kopyalanır. Program yeniden başlatılır ve winamp ekolayzır ayarları arık kullanılabilir durumdadır.

*[1] Komut satırından: gunzip -c winamp_presets.gz > eq.preset
*[2] Xmms için home dizini altında .xmms , Audacious için .audacious klasörleri

Kaynak: Xmms-FAQ

ImportError: libgtkembedmoz.so: cannot open shared object file: No such file or directory

I think Python is looking this package under the /usr/lib/mozilla directory.

If you have no mozilla browser installed on your system (my system is FC6) and your application (for ex. listen, exaile) needs libgtkembedmoz.so library you probably will get this error.

For the fix this problem:

  • First create named as /etc/ld.so.conf.d/mozilla.conf
  • And put the firefox location of your system in this file. (Ex. /usr/lib/firefox-1.5.0.7/ )
  • Run ldconfig command as root
  • And thats it.Your applications should be works now …

IP idreslerini mysql tablolarında saklamak

Mysql’de ip adreslerini saklamak icin varolan bir veri tipi yok malesef.Web uygulamalarımda kullanmak için watchdog tarzında bir ortam geliştirmeye başladım bugün.Ip adreslerini mantıklı bir şekilde saklamak ve daha sonra kolayca ulaşabilmek için kullanılan yöntemleri merak ettim.
Google’da birkaç aramadan sonra buldugum birkaç ipucunu buraya yazayım istedim.

mysql’de unsigned int(11) tipinde bir alan acip php’nin ip2long fonksiyonu ile donusturme islemi yapmak bir yontem.

$ip = ‘127.0.0.1’;

$long_ip = ip2long($ip);


İkinci bir yöntem ise mysql ile gelen INET_ATON() ve INET_NTOA() fonksiyonları.

insert into table (ip) values (INET_ATON(‘127.0.0.1’)) /* 2130706433 */
select INET_NTOA(ip) as ip from table LIMIT 0,1000 /* 127.0.0.1 */