Bir çok hazır script veya yardım, destek yazılarında sıkça karşılaştığımız bir sorun, HTML, CSS, JS kodlarının PHP içine echo veya değişkenlere tırnaklar içine atamak usülüyle işletilmesidir.. Geçerli, geçersiz ifadesiyle ele alırsak;
GEÇERSİZ
<?php
// donguden gelinecek
echo "<table class=\"table\">";
echo "<tbody>";
foreach( $kayitlar as $key => $v ) {
	echo "<tr>";
	echo "<td style=\"width:80px;\">";
	echo $v["id"];
	echo "</td>";
	echo "<td>";
	echo $v["baslik"];
	echo "</td>";
	echo "</tr>";
}
echo "</tbody>";
echo "</table>";

// diger baska benzer haliyle
echo "<table class=\"table\"><tbody>";
foreach( $kayitlar as $key => $v ) {
	$id = $v["id"];
	$baslik = $v["baslik"];
	$kategori = $v["kategori"];
	$duzenle = "?duzenle=$id";
	echo "<table class=\"table\"><tbody><tr><td style=\"width:10%;\">$id</td><td style=\"width:50%;\">$baslik</td><td style=\"width:30%;\">$kategori</td><td style=\"width:10%;\"><a href=\"$duzenle\">Düzenle</a></td></tr></table>";
}
echo "</tbody></table>";
?>
GEÇERLİ, daha az zahmet ve okunurluk
<?php if ($kayitlar) : ?>
<table>
	<tbody>
	<?php foreach ($kayitlar as $key=>$v) :?>
		<tr>
			<td><?php echo $v['id']?></td>
			<td><?php echo $v['baslik']?></td>
			<td><?php echo $v['kategori']?></td>
			<td><a href="?duzenle=<?php echo $v['id']?>">Düzenle</a></td>
		</tr>
	<?php endforeach?>
	</tbody>
</table>
<?php endif?>
Bir başka sorun, ayrı bir TEMA dosyası tutmamak ve her sayfaya meta etiketleri yerleştirmek…
Diyelim ki, 20 adet ayrı, ayrı çalışan PHP dosyamız var, hepsinin başına da aynı html kodları ve meta etiketlerini koymak geçersiz bir davranıştır, zira temanın tümünde yapılacak bir değişiklik durumunda, 20 dosyanında tek, tek açılarak değiştirilmesi gerekir, ayrıca her script çöplüğe döner.
Çözüm, Tema klasörü içerisine 1 adet “meta.php” veya “header.php” eklemek ve “include” etmek…
Her dosyaya tek, yek 20-30 satır meta üst bilgisi, html kodları yazmaktansa, 1 dosyaya yazıp o dosyayı her scriptin başına dahil etmek.
<?php
// standard üst kodları dahil et.
include 'tema/tema2016/header.php';

//diger kodlar
?>
Bir diğer sorun ayrı bir TEMA-HTML klasörü ve dosyaları tutmamak… Böylece temayı değiştirmek tüm, ama tüm projeyi sil baştan değiştirmeye veya yeniden yazıyormuşçasına emek-zaman alacak…
Ana dizinde(PHP dosyalarının çalıştığı dizin), bir “tema” klasörü oluşturmak, o tema klasörü içerisine tema isminde bir başka klasör oluşturmak ve html-tema dosyalarını orada ayrıca tutmak, ihtiyaç olan sayfalarda ise “include” etmek bu sorunu zahmetsizce çözecektir.
—————————-
Bir başka sorun satırlarca javascript kodu içeren dosyaların PHP uzantısıyla kaydedilmesi, sebebi ise “.js” dosyalarında PHP değişkenlere çağrı yapılamaması.
Oysa lazım olacak değişken toplamı 1-3 arasında seyreder, bu durumda javascript içerisinde php değişkenlerin taşıdığı değerleri yansıtmak için,” js” dosyasını dahil etmeden önce javascript değişken tanımlamaktır.
Bir yöntem;
<script type="text/javascript">
var url = "<?php echo $url?>";
var resim_yol = "<?php echo $resimyol?>";
</script>
<!-- $url ve $resimyol degiskenlerinin degerlerinin kullanildigi script dosyasi sonrasinda cagirilir -->
<script type="text/javascript" src="js/javadosyam.js"></script>
başka bir yöntem, ilgili bir kaç değişkenin taglara atanmasıdır… Örneğin bir butona tıklandığında javascript açısından bize sayfanın ID si lazım olmuş olsun, bu durumda;
<button type="button" data-id="1254" class="sayfayi_ac">Detaylar</button>
<script type="text/javascript">
$(".sayfayi_ac").click( function() {
// sayfa id al
var sayfa_id = $(this).attr("data-id");

// islemler
});
</script>
Bazı pratik bilgiler;
PHP kodları okurken zaman kaybeder o nedenle ben “tab”, “enter”, “satır başı/sonu”, ara boşluklar kullanmaktan kaçınayım…
GEÇERSİZ, zira tüm uğraşlarınızın sonunda elde edeceğiniz + performans saniyenin milyonda biri kadar bile olsa fark oluşturmayacaktır. Zira tab, satır sonları, boşluklar vb. atlanacak-yorumlanmayacak… Ayrıca PHP text formatlı dosyaları microsecond dilimlerinde yorumlar, örneğin 100KB bir dosyayı tek seferde satır, satır yorumlaması, “0,1 microsecond” gibi bir zaman diliminde gerçekleşir, yani saniye cinsinden, “0, 00000001 Saniye” (2.70 GHz dual core CPU, 2 GB RAM’a sahip bir bilgisayar test sonucu)…
Peki HTML, CSS kodları sıkıştırılıyor, büyük fark oluşturmasa gerek duyulur muydu? HTML, CSS kodları vb internet ağıyla, internet aracılığıyla iletilen paketlerdir, zaman kaybının ve veri fazlalığının sebebi, ziyretçiye internet ağıyla paketler halinde aktarılmasıyla ilgilidir. Kısaca 1MB veri yükü 5sn’de aktarılıyorsa, 800KB veri yükü, 4sn’de aktarılacak, fark burada, internet ağı..
String alanları çift tırnak içine almalıyım, çünkü içlerinde değişken kullanıyorum. Kod kirliliği ve performans kaybı…
yerine örneğin: $abcd = ‘Lorem ipsum dolor’ . $bce . ‘lorem ipsum’;
Örneğin: $sql = “SELECT *FROM tablo WHERE id=$id” yerine $sql = ‘SELECT *FROM tablo WHERE id=’.$id veya $sql = “SELECT *FROM tablo WHERE id={$id}”
…..
Bir kaç örnek daha
Bu şekilde kullanmak yerine(bu örnek hem “tab” kullanımı, hemde daha az kod yazma mantığı üzerine)
if(isset($abcd))
{
if($abcd>1) 
{
if($abcd<10){
echo '1\'den büyük, 10\'dan küçük';
}
}
}
else if($abcd>10)
{
echo '10\'dan büyük';
}
else
{
echo '1\'den küçük';
}
YERİNE!
$mesaj = '1\'den büyük, 10\'dan küçük';
if ($abcd<1) {
	$mesaj = '1\'den küçük';
}
elseif ($abcd>10) {
	$mesaj = '10\'dan büyük';
}
echo $mesaj;
VEYA
if ($abcd<1) {
	echo '1\'den küçük';
}
elseif ($abcd>10) {
	echo '10\'dan büyük';
}
else {
       echo '1\'den büyük, 10\'dan küçük'; 
}
IF, ELSEIF, ELSE IF
“else if” yerine “elseif” kullanılabilir. Bir örnekle
Aşağıdaki kodlama YANLIŞ (else if!, bu şekilde noktalı kullanımda, kod bloğu PHP tarafından yorumlanamaz)
if ($abcd == 'a') :
	$b = 1;
else if ($abcd == 'b') :
	$b = 2;
endif;
DOĞRUSU
if ($abcd == 'a') :
	$b = 1;
elseif ($abcd == 'b') :
	$b = 2;
endif;
Bu şekilde ise “else if” ÇALIŞIR
if ($abcd == 'a') {
	$b = 1;
}
else if ($abcd == 'b') {
	$b = 2;
}
Bu biçimde de “elseif” çalışır
if ($abcd == 'a') {
	$b = 1;
}
elseif ($abcd == 'b') {
	$b = 2;
}
…
Bazı standard ve kaidelere uyarsak, daha rahat ederiz. Örneğin konunun en başında ifade edildiği gibi, echo ile html kodları oluşturmak vb durumunda, projemize 15 gün sonra geri dönmüş olsak dahi, neyi nereden aldığımızı, neyin nereden geldiği, nereye gittiğini vb kendimiz dahi çözemez hale geliriz. Ayrıca kullandığımız programlar PHP kodlarını, HTML kodlarını ayrı, ayrı renklendirmektedir, tırnaklar arasına çöplük gibi dizeceğimiz değişkenler, kodlar, html taglar ayrıca renklendirilmeyeceği, neyin nerede başladığı, bittiği, bir tagın açılışı, kapanışının neresi olduğu, tırnak problemleri vb sorunları ile, gereksizce ve yok yere cebelleşeceğiz…
3 Yorum	
Gökçe	 12 Haziran 2019 02:53	 Cevapla	
Teşekkürler. Pek anlamıyorum ama çok güzelce ve temelden anlatmışsınız Php’yi. WordPress’ten aşinayız zaten az çok belirttiğiniz noktalara. Bunun gibi yazılara mesela basit tema yapımı gibi konulara girseniz çok okunacaktır, emin olun.
Büyükada Restoran	 06 Temmuz 2017 16:15	 Cevapla	
Paylaşım için teşekkürler
Franke Tezgah	 02 Temmuz 2017 21:54	 Cevapla	
Oldukça faydalı bir paylaşım. Teşekkürler
Bir cevap yazın Cevabı iptal et
E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir
Yorum
İsim *
E-posta *
İnternet sitesi
Bir dahaki sefere yorum yaptığımda kullanılmak üzere adımı, e-posta adresimi ve web site adresimi bu tarayıcıya kaydet.
Kategoriler
CSS-HTML-xHTML
Oradan Buradan
Programlama
C++
Java
Javascript
JQUERY
PHP & MYSQL
VISUAL BASIC
Wordpress
Teknoloji – Web
Veblebi
Web Design & Templates
CSS-HTML-xHTML
Grafik – Design
Doğa
Joomla Templates
Wordpress Tema
PHP Developer
Etiketler
AB Baglantilar css datepicker düzenli ifadeler fonksiyonlar fontawesome functions gimp google haberler html icons ingilizce Java javascript joomla joomla templates JQUERY JSON Login Form muhabbet kusu mysql parse_url photoshop PHP plugins plugin tutorial program Regular Expressions resim seçtiğim temalar social icon takvim teknoloji themes wordpress wordpress templates wordpress themes wordpress themes wp_admin xhtml XML Örnekler