Twig 1 sürümünden Twig 3 sürümüne nasıl geçtim.

Şablon motorları faydalı araçlardır, ah bir de güncellemek gerekmese 🙂

Kullandığım Şablon Motoru / Template Engine adı Twig ve çok meşhur bir motor. Uzun zamandır yeni site yapmıyorum ve doğal olarak günceli takip etmiyordum. Lakin TinyMCE’de orta seviyede 3 açık çıkınca hala yayında kalan ve kendi özel altyapımı kullandığım tek sitemi (http://www.kitaphaber.com.tr) güncelleme durumu hasıl oldu. Güncellerken de madem güncelliyoruz tüm vendor klasöründeki scriptleri sırasıyla güncelleyeyim dedim.

Uzun zamandır web sitesi yapıyorum. Açık kaynak olarak ve başkalarının kullanımına açtığım bu alt yapıdan 2 tane site bulunuyor. Lakin bu iki siteye pek kimsenin ilgisi olmadı. (https://github.com/libreajans/superhaber.tv/ ve https://github.com/libreajans/video.superhaber.tv).

Neyse, konumuza dönersek elde kalan tek aktif siteyi twig 1 sürümünden twig 3 sürümüne geçirdim. Peki bunu nasıl yaptım.

İlk önce Composer kurmak gerekti. Bunu şu sayfadan çözdü: (https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-20-04). Linkte hata yok arkadaşlar, Ubuntu LTS sürümlerini bilgisayarımda kullanıyorum.

Sonra twig indirmek gerekti. Projenin ana klasöründe şu kodu çalıştırdım.

composer require "twig/twig:^3.0"

Sonrasında neleri değiştirmek gerektiğini bulmaktı. Onu da şu sayfadan çözdük (https://twig.symfony.com/doc/3.x/intro.html)

Peki neleri kendi projemde değiştirmek zorunda kaldım. lib.init.php diye tüm dosyaları çağırdığım başlangıç çağrı dosyasında şu değişiklikler yapıldı.

Öcnelikle eski autoloader çağrısını kaldırdım.

Bul:

include SITEPATH.'vendor/Twig/Autoloader.php';

Değiştir:

require_once SITEPATH.'/vendor/autoload.php';

Şu satırı tamamen kaldırdım. Çünkü artık autoloader içinden otomatik hallediliyor.

Twig_Autoloader::register();

Sonrasında tema klasörlerinin yolunu gösterdiğimiz kodu değiştirdik.

Bul:

$loader = new Twig_Loader_Filesystem(SITEPATH.'app/Template/view');

Değiştir:

$loader = new \Twig\Loader\FilesystemLoader(SITEPATH.'app/Template/view');

Sonra template dosyalarının nerede derleneceğini belirttiğimiz cache kodunu değiştirdik.

Bul:

$twig = new Twig_Environment($loader, array('cache' => SITEPATH.'cache/tmp/'));

Değiştir:

$twig = new \Twig\Environment($loader, ['cache' => SITEPATH.'cache/tmp/']);

Bunları yapmak yetmiyor, template control dosyalarını da tek tek değiştirmek gerekti. Örnek olarak bir dosyadaki değişikliği göstereyim.

Bulduğum


$template = $twig->loadTemplate('site_footer.twig');
$footer = $template->render(array('year' => date("Y")));

Değiştirdiğim


$footer = $twig->render('site_footer.twig', ['year' => date("Y")]);

Bu kadar az değişiklikle Twig 1 sürümünden (ki 5 sene önce son sürüm yayınlanmış) yeni twig sürümüne geçiş yapabildim.

En son olarak kod renklendirmenin berbat olması dolayısıyla 2 ekran görüntüsü bırakayım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir