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.
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.
- Dosya Sistemi. PHP Documentation ↩
- Luke Plant. Flatfile Tutorial ↩
- PHP Flat-file Beginner Log-in Script. Code Project ↩
- Flat File DataBase (FFDB) for PHP ↩
- Flat File DataBase Class ↩
- PHP FFDB Examples. Hot Examples ↩
- ffdb.inc.php. Flat File DataBase Class ↩
- dhtml/flatsql. GitHub ↩
- Matthew Guay. (2013). Kirby: The Flat-File CMS That’ll Make You Rethink Content Management. AppStorm ↩
- Kirby ↩
- Htmly Demo ↩
- Htmly ↩
- Kezz Bracey. (2014). 7 Dropbox-Powered Site Creation Platforms. envato tuts+ ↩