Mongodb için phpmoadmin

Php ile mysql in yönetim toolu olan phpMyAdmin den sonra şimdi de mongo db için de bir php toolu yapmışlar. Adı phpmoadmin. PhpMyadmin kadar geniş kapsamlı ve kullanışlı olmasa da işinizi görebilecek özelliklerin hepsine sahip. Tabi ki Windows ortamında mongod.exe yi çalıştırdktan sonra girebiliyorsunuz.

İşinize yarayacağını düşünüyorsanız, tek dosya. Çok pratik. http://www.phpmoadmin.com adresinden indirebilirsiniz.

PHP: preg_match desen(pattern) anlamları

Php de vazgeçilmez karakter – desen filtreleme fonksiyonu olan preg_match ile ilgili yapabileceğiniz bir kaç örnek burada.

Ne zaman kullanacak olsam, birden neyin ne manaya geldiğini unutuveriyorum. Ben de buraya yazarak kendime not alayım ve faydalanacaklar da faydalansın istedim.

[abc] tek bir karakter: a, b veya c

[^abc] a, b, veya c dışında herhangi tek bir karakter.

[a-z]  a-z arasındaki herhangi bir karakter. (sadece küçük harf ve ingilizce harfler)

[a-zA-Z] a-z veya A-Z arasındaki herhangi bir karakter. (küçük büyük ingilizce harfler)

^ satır başlangıcı

$ Satır bitişi

\A string  başlangıcı

\z string bitişi

.  Herhangi bir karakter.

\s herhangi bir boşluk karakteri.

\S herhangi boşluk olmayan bir karakter

\d herhangi bir rakam

\D herhangi bir rakam olmayan karakter

\w herhangi bir kelime karakteri. harf, sayı veya alt çizgi

\W herhangi bir kelime dışı karakter

\b kelime sınırlayıcı karakter.

(…) içerideki herşeyi yakala!

(a|b) a veya b karakteri

a? sıfır veya 1 tane a karakteri

a* 0 veya 1 veya birkaç tane a karakteri

a+ 1 veya daha fazla a karakteri

a{3} tam olarak 3 tane a karakteri

a{3,} 3 veya daha fazla a karakteri

a{3,6} 3 ve 6 tane arasında a karakteri

 

tabi ki akılda tutmak zor oluyor, burada ben de +1 kaynak olarak, arandığında bulunma ihtimalini artırmak istedim.

Tüm desenleri preg_match(“/BU KISIMA YAZARAK DENEYEBİLİRSİNİZ/”,$string);

 

Doğru Foreach Kullanımı

Kaynak olarak kullanılabilen bir çok sitede, bir metod, bir özellik, veya bir fonksiyon anlatılırken sadece o fonksiyon anlatılıyor. Bu noktada kişnin dikkat etmesi gereken şeyleri tecrübe etmesi gerekiyor. Foreach kullanımını sorsak herkes bilir. Zor da bir şey değil fakat, bu noktada amaç, bir hata oluşmasının önüne geçmek, istenmeyen şeylerin önüne geçmek.

Genel Kullanım:

AŞağıdaki kodda dizi içinde dizi olmadığı düşünülerek

$array = array("a"=>"emre","b"=>"ahmet");
foreach($array as $key=>$val){
    echo $key." indisli değer =".$val."
"; }

Fakat bu noktada, $array dizisinin içinde de bir dizi varsa, bu noktada echo ettiğim şey bir array olacak ve hatalı bir şey yapmış olacağım.

Bu sebeple değişkenlerinizin tiplerine göre işlem yaptmayı, diğer tipler için de hata verdirtmeyen bir çözüm bulmanız gerekiyor.

1. Konu : $$key = $val !!

$array = array("a"=>"emre","b"=>"ahmet");
foreach($array as $key=>$val){
    $$key = $val;
}

Böyle diyerek, otomatik olarak $a = “emre”; $b = “ahmet” demiş oluyoruz. Fakat arrayin key’i bir integer gelirse yani örnek dizimiz şöyle olursa :

$array = array(0=>"emre",1=>"ahmet");
//yani bu aşağıdakiyle aynıdır bilindiği gibi
$array = array("emre","ahmet");

Bu durumda $o = “emre”, $1 = “ahmet” olacaktır. Normalde Php de sayı ile başlayan değişkenler üretilmez, ama bu noktada backgroundda yapılan bu işlemde windows ortamında hata vermeden çalışıyor. Bu kötü bir durum, çünkü çok rahat hata yapmanıza sebep olabilir. BU yüzden $$key = $val olayını kullanmanızı tavsiye etmiyorum.

2. Konu : Dizinin kontrolü : isset ve is_array

Bir diziyi foreach’ten geçirmeden önce mutlaka kontrol etmelisiniz. Yani bunu foreach kullanımı gibi kendinizle özdeşleştirin.

$array = array("a"=>"emre","b"=>"ahmet");
if(isset($array) && is_array($array)){
    foreach($array as $key=>$val){
        echo $key." indisli değer =".$val."
"; } }

Bunu kendinize refleks edinin. Bu dizi içinde dizi olma durumlarında hata yapmanızı direkt olarak engelleyecektir. Yani örnek dizi şöyle olursa ;

$k = //bir sayı
$array[$k] = array("a"=>"emre","b"=>"ahmet");
$k // karmaşık bir programda k değişebilir.
foreach($array[$k] as $key=>$val){
    echo $key." indisli değer =".$val."
"; }

Bu durumda hata verme ihtimali yüksek, çünkü k değeri bir değişken ve foreach e gelmeden önce değişmiş olabilir. Bu durumda isset ve is_array hayat kurtarır. Doğrusu da şu şekilde olacak ;


if(isset($array[$k]) && is_array($array[$k])){
    foreach($array[$k] as $key=>$val){
        echo $key." indisli değer =".$val."
"; } }

Zend Studio 9 çıktı.

Zend firmasının IDE’si olan Zend Studio 9 çıktı. İlk denemelerime göre sıkıntısız çalışıyor. Zend Studio 8 ‘deki benim de görebildiğim bazı buglar giderilmiş gözüküyor. (Auto complete veya, code assist gibi konulardaki buglar bunlar) Özellikle büyük php dosyalarını (>2500-3000 satır) parse etme konusunda çok yavaşlık yaşatan, ve kod yazamaz hale getiren zend studio 8 den sonra, bu sorunu çözmüş gibi gözüküyorlar.

Ayrıca release notlarında yazanlara göre :

  • Proje oluşturma konularını kolaylaştırdıklarını,
  • Git, github, gibi versiyon kontrol sistemlerini doğrudan kullanımını,
  • Yeni Javascript, CSS3 ve HTML5 editör geliştirmeleri,
  • Projelerinizi anında erişim geliştirip, yayınlayabileceğiniz Zend Developer Cloud,
  • %67 daha hızlı program açılışı,
  • %40 daha az disk kullanımı,
  • Ve deneyerek görebilceğimiz küçük ama önemli geliştirmeler,
  • Zend Framework 1.11,
  • PHPUnit 3.5

içermekte.
8.x versiyonlarıyla da tam uyumluluk söz konusu.

Download etmek isteyenleri buraya alalım : Download Zend Studio 9.0

zend cache (zend file cache) to memcache

If you are tending to use memcache while you are currently using Zend File cache, here are some advices for you.

First, if you use “tagging” in file cache (in memcache there is no tag system from its simplicity), you have to create your own tag system manually. (Tag system is for cleaning cache data with the same tag.) When saving a cache id, you have to collect and save the tag and the ingriendents of the tag.

But where to put this self-made tag data?

If you save this in memcache, it is not reliable, while it can be deleted automatically in the lack of memory.

If you save this on a regular file, at this point, if too many visitors come, file locking can reduce your speed, or can not be written correctly (tries to write the same file by multiple ports)

You see, there can be no solution to this issue with tag system.

So I advice you, if you use Zend_File_Cache with tag system, purify your cache data from tags, or create a static tag array in your php code. There can be only this method that comes to the state “solution”.