Twig Kurulumu ve Kullanımı

Merhaba,

Profesyonel yazılım projelerinde yazılım tasarımdan ayrı tutularak tasarlanır ve geliştirilir. Özellikle özel şirketlerde yazılım, tasarım ve arayüz için farklı departmanlar bulunmaktadır. Konusunda uzman kişiler çalışmalarını birbirlerine ayak bağı olmadan ilerletir. Ne arayüz geliştiricilerin her iş için yazılımcılara ihtiyacı olur ne de yazılımcıların her iş için tasarımcılara ihtiyacı. Bu bağlamda basit bir yazılım dili gibi HTML değişkenler ile birçok çalışma yapmak mümkün.

Önemli template motorlarından Twig kurulumu ve birkaç basit çalışmayı sizlerle paylaşmak istiyorum.

Twig 1.12.2 sürümünü indirmek için buraya diğer sürümlere erişmek için buraya tıklayınız. İndirmiş olduğunuz dosyayı çalışmak istediğiniz dizine çıkarmanız gerekiyor. Aslında kurulumdan kastımız buydu 🙂 Sadece çalışır duruma gelmesi için birkaç düzenleme daha yapacağız. Cache ve template dosyalarımızın bulunacağı 2 klasör daha isteyecek bizden. Oluşturmanız gereken klasörleri aşağıda listeliyorum

– compilation_cache

– templates

Templates klasörümüzün içine index.html ekleyelim. Basit bir sayfa olacak

<!DOCTYPE html>
<html>
    <head>
        <title>My Webpage</title>
    </head>
    <body>
        <h1>My Webpage</h1>
        {{ message }}
    </body>
</html>

Proje dizinimize index.php oluşturup içine şu kodları ekleyelim :

<?php
require_once 'lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array('message' => "Hello Word!"));
echo $twig->render('index.html');

Twigi oluşturup template dizinimizi belirttik. index.html ile haberleşecek olan verileri array olarak gönderiyoruz. message değişkenimiz var şuan sadece. En son olarak index.html’i render ederek çalıştırmış olduk. Ekrana “Hello Word” yazıldığını görürseniz başardınız demektir 🙂

Ubuntu PHP 5.4’den 5.3’e Geçiş (Downgrade)

Merhaba,

Ubuntu ile pek çok şeyin kurulumu oldukça basittir. Bunlardan biride PHP. Tabi sudo apt-get install php5 diyerek en güncel PHP sürümüne erişmiş oluyoruz. Yazıyı yazmış olduğum tarihte ki en güncel versiyon PHP 5.4.6.

Tabi ki geliştiriciler olarak en güncel versiyonları takip etmek ve ayak uydurmak durumundayız. Oldukça hızlı gelişen bir platform üzerinde çalışmalar yapmaktayız. Ancak mevcut projeleriniz veya araştırma geliştirme çalışmalarımız için PHP 5.3 sürümüne ihtiyaç duyabiliriz. Bunun için derlenmiş durumda olan PHP 5.3.3 sürümünü makinamıza kuracak olan bir bash script dosyamız mevcut.

İndirmek için https://www.box.com/s/utzf230qwdt1i5ifvmiu adresini kullanabilirsiniz. İndirdikten sonra yapmanız gerekenleri aşağıda yazıyorum. Sonrasında PHP 5.3.3 versiyonuna sahip olmuş olacaksınız.

sudo sh php5_4_downgrade_5.3.sh

 

Php Array Iterator Sinifina Kucuk Bir Ekleme

PHP de array objelerinin vazgeçilmezi array iteratörleridir. Array iteratör kullanmayacaksanız, array object yapmanıza pek de gerek yoktur açıkçası.
Array iteratör ile genelde while loop yaparsınız.

Burada hem
iterator->current(); demenize
hem de döngünün en sonunda da
iterator->next() demenize gerek kalmayacak bir metod ekledim kendi iterator sınıfıma.

Aşağıdaki iterator classı ile initialize edilen arrayobject sınıflarında iterator->getNext() dediğinizde hem currentı döndürecek hem de next yapmış olacaksınız.

Bu iterator sınıfına yeni metodlar eklenerek işlerinizi çok daha güzel ve kolay hale getirebilirsiniz. Bu da basit bir örneği olmuş oldu

class MyArrayIterator extends ArrayIterator
{
    public function getNext ()
    {
        $current = $this->current(); 
        
        parent::next();
        return $current;
    }
}

uzun süre calisan mysql processleri oldurmek

Sunucunuzda bazı durumlarda, mysql veritabanınızda işlemler yığılmaya başlıyor olabilir.

Bu durum için bir arkadaşımın yazmış olduğu basit bir php scripti mevcut. Dilerseniz işinizi kolaylaştırabilir.

Script, verdiğiniz süreden daha büyük süre değerine sahip mysql processleri yakalayıp, bunları KILL ediyor (öldürüyor).
* kullanıcı adı kısmına root, root şifresi yazan kısma da root şifrenizi yazarak çalıştırabilirsiniz.

 

<?
var_dump(mysql_connect("localhost", "{kullanici_adi}", "{root_sifresi}"));
$result = mysql_query("SHOW FULL PROCESSLIST");
$i=0;
while ($row=mysql_fetch_array($result)) {
  $process_id=$row["Id"];
  if ($row["Time"] > 5000 ) {
    $sql="KILL $process_id";
    $i++;
    mysql_query($sql);
  }
}
echo $i." adet islem sonlandirilmistir";
?>

Php ignore_user_abort fonksiyonu

Çook uzun süren bir php fonksiyonu çalıştıran bir URL’niz var. Ancak istemci (tarayıcı-browser) kapansa bile bu işlemin devam etmesini istiyorsunuz. Örneğin 1 milyon datanın patchlenmesi işlemi (kim bunu URL’den tetikler ki?) Bir şekilde böyle bir ihtiyacınız var diyelim. Bu durumda, ne yapmalısınız?

Öyleyse sizin

ignore_user_abort(true);

komutuna ihtiyacınız var. Bu komut ile birlikte

set_time_limit(0); 

verirseniz de kodunuz; çalıştıran istemci veya süre kısıtlaması olmadan sonsuza dek çalışacaktır.

http://php.net/manual/tr/function.ignore-user-abort.php adresinden de okumaya devam edebilirsiniz.