09-01-2015, 05:12 AM
PHP nin diğer web scripting dillerine göre bir üstünlüğü de kendi kodlarını rahat okunmasını sağlayacak şekilde renklerle düzenleyebilmesi.
Bunun için sadece basit bir fonksiyon kullanıyoruz. Ama bu fonksiyon sadece verilen bir kodu renklendirebiliyor.
Peki yazdığımız makalele ve dokumanlardaki php kodlarını otomatik olarak bulup renklendirmesini istersek?
PHP Alemini ilk açtığımda bulduğum yeni php tekniklerini gösterirken, yazdıgım örnek kodları tek tek kendim renklendirmek zorunda kalıyordum. Acaba bu işi yapmanın kolay bir yolu yok muydu? Başladım manual i karıştırmaya. Evet php de kod highlighting fonksiyonları vardı. Ama bence biraz yetersizler çünkü mevcut üç fonksiyonda sadece verilen kaynağı renkli olarak ekrana basabiliyorlar. Peki bence neleri eksik?
# Verilen kaynağı işlemden geçirdikten sonra değişkenkenlere atayamıyorlar.
# Karışık(text+code) bir kaynakta tarama yaparak ilgili kısımları renklendiremiyorlar.
# Renk kodları statik(Açık arkaplan için düşünülmüş). Yani Sayfa renklerinizin koyu bir renk olması kodun okunmasını zorlaştırıyor.
Bu fonksiyonların açıklarını kapatacak yeni fonksiyonlarımı tanıtmadan önce mevcut bu üç fonksiyona bir gözatalım.
Kod:
Evet gördüğünüz gibi hepsinin işlevi hemen hemen aynı.
Peki bir kodu renklendirdikten sonra nasıl bir değişkende saklayabiliriz. Bunu için output kontrol fonksiyonlarını kullanmamız lazım. Burada bu fonksiyonlardan bahsetmeyeceğim. Ama konu ile ilgili online manual(output control) ı burada bulabilirsiniz.
Renklendirimiş kodu değişkene atayan fonksiyon:
Kod:
Peki diyelimki tıpkı bu sayfada olduğu gibi karışık(text + php + html) bir dosyanız var. Bu sayfadaki sadece ilgili kodları nasıl renklendirirsiniz. Bunun için tek yapmanız gereken bir Regex araştırması ile kodları bulup yukardaki fonksiyonu ugulamak yani:
Kod:
Son olarak arkaplanı koyu sayfalar için yazdıgım highlighting fonksiyonuna bir gözatalım:
Kod:
İlk uygulamalarımızı geliştirdikten bir süre sonra clean code ve hızlı çalışan scriptler yazamamış olmaktan endişe ederiz. Bu yazıda hızlı çalışan scriptler için bazı öneriler bulacaksınız.
Öncelikle belirtmeliyim ki, PHP scriptlerinin hızlı çalışması için yapacağınız düzenlemeler çoğu kez kayda değmeyecek iyileştirmeler sağlar. Ama yine de kod yazma alışkanlıklarımızı geliştirmek fayda sağlayacaktır.
Bunun için sadece basit bir fonksiyon kullanıyoruz. Ama bu fonksiyon sadece verilen bir kodu renklendirebiliyor.
Peki yazdığımız makalele ve dokumanlardaki php kodlarını otomatik olarak bulup renklendirmesini istersek?
PHP Alemini ilk açtığımda bulduğum yeni php tekniklerini gösterirken, yazdıgım örnek kodları tek tek kendim renklendirmek zorunda kalıyordum. Acaba bu işi yapmanın kolay bir yolu yok muydu? Başladım manual i karıştırmaya. Evet php de kod highlighting fonksiyonları vardı. Ama bence biraz yetersizler çünkü mevcut üç fonksiyonda sadece verilen kaynağı renkli olarak ekrana basabiliyorlar. Peki bence neleri eksik?
# Verilen kaynağı işlemden geçirdikten sonra değişkenkenlere atayamıyorlar.
# Karışık(text+code) bir kaynakta tarama yaparak ilgili kısımları renklendiremiyorlar.
# Renk kodları statik(Açık arkaplan için düşünülmüş). Yani Sayfa renklerinizin koyu bir renk olması kodun okunmasını zorlaştırıyor.
Bu fonksiyonların açıklarını kapatacak yeni fonksiyonlarımı tanıtmadan önce mevcut bu üç fonksiyona bir gözatalım.
Kod:
Kod:
<?
highlight_string("string") //string kısmına php kodu yazmalısınız.
highlight_file ("string filename") //php kodu içeren dosya yolu kullanılarak dosya içeriğini basar.
show_source (string filename) // Üsttek fonksiyonla işlevi aynıdır.
?>
Evet gördüğünüz gibi hepsinin işlevi hemen hemen aynı.
Peki bir kodu renklendirdikten sonra nasıl bir değişkende saklayabiliriz. Bunu için output kontrol fonksiyonlarını kullanmamız lazım. Burada bu fonksiyonlardan bahsetmeyeceğim. Ama konu ile ilgili online manual(output control) ı burada bulabilirsiniz.
Renklendirimiş kodu değişkene atayan fonksiyon:
Kod:
Kod:
<?
function phpcode($code)
{
ob_start();
highlight_string(stripslashes($code));
$buffer = ob_get_contents();
ob_end_clean();
return $buffer;
}
?>
Peki diyelimki tıpkı bu sayfada olduğu gibi karışık(text + php + html) bir dosyanız var. Bu sayfadaki sadece ilgili kodları nasıl renklendirirsiniz. Bunun için tek yapmanız gereken bir Regex araştırması ile kodları bulup yukardaki fonksiyonu ugulamak yani:
Kod:
Kod:
<?php
/* Bu örnek arama ve kaplama işinde ben yazıma [ php ] ile başlayıp [ /php ] ile biten kodları aratıyorum. Bu benim kişsel terchim. Tabii istenirse direkt olarak <?php ve ?> kelimeleri de aranabilir. */
preg_replace('/
[nr]*(.+?)[nr]*
/esi',"phpcode('\1')",$mixtext);
?>
Son olarak arkaplanı koyu sayfalar için yazdıgım highlighting fonksiyonuna bir gözatalım:
Kod:
Kod:
<?php
// Bu fonksiyon default php.ini dosyasındaki değeler için tasarlanmıştır.
function phpcode($code)
{
ob_start();
highlight_string(stripslashes($code));
$buffer = ob_get_contents();
ob_end_clean();
$buffer = eregi_replace("000000","CCCCCC",$buffer);
$buffer = eregi_replace("006600","33cc00",$buffer);
$buffer = eregi_replace("0000CC","0099ff",$buffer);
$buffer = eregi_replace("CC0000","ffffcc",$buffer);
return $buffer;
}
?>
İlk uygulamalarımızı geliştirdikten bir süre sonra clean code ve hızlı çalışan scriptler yazamamış olmaktan endişe ederiz. Bu yazıda hızlı çalışan scriptler için bazı öneriler bulacaksınız.
Öncelikle belirtmeliyim ki, PHP scriptlerinin hızlı çalışması için yapacağınız düzenlemeler çoğu kez kayda değmeyecek iyileştirmeler sağlar. Ama yine de kod yazma alışkanlıklarımızı geliştirmek fayda sağlayacaktır.