Requi – Requirement Controller Class
Requi, php ile yazılmış bir gereksinim kontrolü sınıfıdır. Yazdığınız bir php uygulamasını herhangi bir sunucuya yüklemeden önce, o sunucunun uygulamanız için gerekli olan şartları yerine getirip getirmediğini test eder. Ayrıca, sunucu üzerinde yapılan bir değişiklik sonucunda, halâ uygulamanızın sağlıklı bir şekilde çalışıp çalışmadığından emin olmanızı sağlar.
Requi nedir, niye var?
Özellikle framework’lerde (Kohana, Yii gibi) ve paket programlarda (forum, blog gibi) sıkça karşılaşıyoruz; sunucuya kurulum yapmadan önce bir gereksinim kontrolü yapılıyor. Böylece sunucunun konfügürasyonu, uygulama için uygun mu değil mi test edilmiş oluyor. Testler başarılı olursa kuruluma devam ediliyor.
Bu gereksinim kontrolünü yapan script’lere baktığımda genelde hep gelişi güzel yazıldığını gördüm. Kendim de geçmişte GoPof için gereksinim kontrolü yapan gelişi güzel bir script yazmıştım. Geçenlerde bu script’i düzenlerken, bu işi daha pratik ve az zamanda yapabilecek otomatik bir class yazma fikri doğru.
Requi ne gibi özelliklere sahip?
- Tamamen nesne yönelimli yazılmış bir sınıftır. Kullanımı kolaydır ve son derece esnektir.
- Tema desteği sayesinde test sonuçlarının ekranda nasıl görüntüleneceği ile uğraşmanıza gerek kalmaz.
- Testleri yazarken size zaman kazandıracak yardımcı sınıflar sunar. Örneğin php.ini dosyasındaki bir direktifin tanımlı olup olmadığını
Ini::get('direktif_ismi');yardımcı sınıfı size kolayca söyler.
Requi nasıl kullanılıyor?
Örneğin bizim php uygulamamızın çalışabilmesi için sunucu (server) şu gereksinimleri sağlamalı:
- php versiyonu 5.2.0 ve yukarısı olmak zorunda
shell_exec()fonksiyonu aktif olmak zorunda- ve son olarak da http eklentisi olursa iyi olur
işte bu 2 zorunlu, 1 seçimli gereksinimi kontrol etmek için Requi sınıfını şöyle kullanıyoruz:
<?php
require_once 'class.Requi.php';
Requi::getInstance()
// GEREKLİ OLANLAR (olmazsa olmazlar)
->addRequired(array(
'title' => 'PHP versiyonu',
'cause' => 'php versiyonu 5.2.0 veya üzeri olmalıdır!',
'state' => Php::version('5.2.0', '>'),
))
->addRequired(array(
'title' => 'shell_exec() fonksiyonu',
'cause' => 'shell_exec fonksiyonu gereklidir!',
'state' => Func::exists('shell_exec'),
))
// OLMASA DA OLUR dediklerimiz
->addOptional(array(
'title' => 'HTTP eklentisi',
'cause' => 'HTTP eklentisi olsa iyi olur. Mümkünse etkinleştirin!',
'state' => Ext::loaded('http'),
))
// testleri başlat
->start();
?>
İşte bu kadarcık kod ile php uygulamanız için şık bir gereksinim kontrolü yazdınız
Download
Yazmış olduğum Requi sınıfını eBurhan Araçları sayfasından bilgisayarınıza indirebilirsiniz. Yine aynı sayfada bu sınıf için yazmış olduğum ayrıntılı bir dökümana ulaşabilirsiniz. Faydalı olması dileyiğle
















Çok faydalı olabilecek bir sınıf yazmışsın yine Erhan. Çok teşekkürler.
teşekkürler
Eyvallah hacı, işimize yarar bu
Uzun bir aradan sonra gerçekten güzel bir yazı ve güzel bir sınıf teşekkürler.
Erhan gerçekten çok güzel bir iş daha yaptın. Bunları açık bir şekilde yayınlaman da çok özel, güzel bir davranış.
Senin yazdığın sınıfları projelerimde kullanıyorum artık. O kadar işe yarayan projeler ki her birinin gözümde ayrı ayrı değerleri var.
Bu emeğine hiçbir karşılık beklememen de cabası. Fakat o kadar isterdim ki senin projelerine maddi manevi destek verebilmek. Böyle bir imkan sağlamanı çok isterim.
Ellerine ve emeğine sağlık…
Hayatında her alanda başarılı olman dileğiyle
Oğuz
class.Requi.php dosyası içindeki getInstance() fonksiyonu statik olmalı, çünkü index.php dosyasında statik olarak çağırılıyor: Requi::getInstance()
@angelside
kesinlikle haklısın, benim gözümden kaçmış ama senden kaçmamış (: Teşekkür ederim uyardığın için, dosyayı güncelledim.