PHP Flat-File İçerik Yönetimi

Çok zamandır WordPress geliştirmeleri ve kritik sorunlar dışında spesifik olarak PHP dili ile pek çalışmıyorum. Ancak, geçtiğimiz günlerde bir arkadaşımın portfolyo sayfası üzerinden konusu açılan ve not olarak düştüğüm dosya tabanlı içerik üretimine PHP nazarında değinmek istiyorum. Elbette bahsi geçen bu örnek için daha pek çok programlama dili tercih edilebilir. Bu yazıda temel bir örnek, kullanılabilecek daha gelişmiş araçlar ve uygulamalardan bahsedeceğim.

PHP Flat-File Veri Yönetimi

Flat-File, yani dosya tabanlı işlemlerde herhangi bir aracı olmaksızın işlemler PHP tarafında Dosya Sistemi fonksiyonları (fopen, fwrite, fclose vb.) ile yürütülmektedir1. Aracı sistemler ile kasıt bir veritabanı sunucusu olabilir. Dosya sistemi fonksiyonlarıyla örneğin bir SQL dosyasını MySQL sunucusu olmaksızın kontrol edebilirsiniz. Bu anlamda aşağıda, metin dosyasına kayıt ve düzenleme işlemlerinin yer aldığı2 bir örnek paylaşıyorum3.

<?php
$currentFile = "content.txt";
if (isset($_POST['content'])) {
  $newData = nl2br(htmlspecialchars($_POST['content']));
  $currentData = fopen($currentFile, "w");
  fwrite($currentData, $newData);
  echo (!file_exists($currentFile)) ?: $getContent = file_get_contents($currentFile);
  echo str_replace("<br />", "", $getContent) . ' ';
  fclose($currentData);
}
?>

<form action="./" method="POST">
  <textarea name="content"></textarea>
  <input type="submit" value="Submit" />
</form>

Örnek kod ilk aşamada textarea içeriğindeki girdiyi content.txt dosyayı oluşturmakta ve içeriğine yazdırmakta. Sonraki süreçte textarea içeriğinde yapılan her değişiklik bu dosya içeriğinde de gerçekleştirilmekte. Flat-file yapısının en temel anlatımını bu şekilde yapabiliriz. content.txt içeriği olarak Nazım Hikmet Ran‘ın Ellerinize ve Yalana Dair şiirini kullandığım örneğin işleyişini aşağıda görmektesiniz.

Php flat file

Project FFDB-PHP

Elbette basit kullanımın çok ötesinde bu yapıyı çok gelişmiş biçimlerde farklı amaçlarla kullanmak mümkün. Bu anlamda ilk bahsedeceğim örnek Project FFDB-PHP adı altında yayınlanmakta4. Bir çok özelliğe sahip ve geniş bir veri tiplerini desteği bulunan Project FFDB-PHP ile ilgili detaylı bilgi ve class kullanımına5 6 ilgili web sitesinden ulaşabilirsiniz7. Örnek kullanımlar klasör içeriğinde yer almakta.

FlatSQL

Dosya işlemlerini SQL üzerinden gerçekleştiren FlatSQL başarılı ve etkili örneklerden biri olmasına karşın uzun zamandır geliştirilmemekte. GitBub adresi üzerinden kodlarını ve kullanımına dair örnekleri edinebilirsiniz8.

Kirby

Kirby dosya tabanlı veri yönetimini içerik yönetimi (CMS) boyutunda uygulayan çalışmalardan biri. Klasörler dahilinde Markdown kurallarıyla içerikler oluşturmayı mümkün kılan uygulama9 ile ilgili detaylara getkirby.com üzerinden ulaşabilirsiniz10.

Grav

Grav ile ilgili daha önceden yayınlanmış pek çok yazım mevcut. Kirby gibi tüm yönetim sistemini veritabanı sunucusu olmaksızın dosyalar üzerinden yürüten Grav ile ilgili nedir ve nasıl kurulur sorularının cevaplarına ilgili yazımdan ulaşabilirsiniz.

HTMLy

HTMLy uygulaması da yine PHP ile geliştirilmiş, Kirby ve Grav gibi başarılı örneklerden biri. Çok düşük gereksinimlerde dahi etkin bir şekilde çalışabilen HTMLy ile ilgili detaylar için web sayfasını inceleyebilirsiniz11 12.

Dropbox Üzerinden Web Sayfası Yönetimi

Evet, dosyalarınızı dropbox, google drive gibi bulut dosya barındırma ve paylaşım uygulamalarında tutarak da web sayfalarınızı yönetebilirsiniz. Temel olarak ortak payda bir veritabanı sunucusuna ihtiyaç duymuyor oluşunuz. Bu amaçla yayınlanmış 7 Dropbox-Powered Site Creation Platforms yazısında farklı özelliklere sahip uygulamalar yer almakta13.