PHP Framework Seçimi ve Performans Sorunu
PHP konusunda junior seviyesinin üzerine çıkmış iki kişi bir araya geldiğinde büyük bir tartışma konusudur frameworkler ve performansları.
Frameworkler kod yazarken okurken ve düzeltirken can kurtarsa da performans olarak değerlendirildiği zaman sonuç biraz hüsran oluyor ben sizler için 2 gözde framewok Codeigniter ve Zend i ayrıca bunlara ek olarak Core php yi kıyasladım. Bunun içinhttp://avnetlabs.com/php/php-framework-comparison-benchmarks adresindenden aynı işleri yapan kodları indirip lokalize ettim ve sonra bunları Apache Benchmark Tool ile test ettim.
5 concurrency ve 1000 request göndererek kendi bilgisayarımda bu testi gerçekleştirdim.
Zend için test sonuçları :
PHP JAVA ve ASP.NET Inheritance Yapısı
Şöyle bir durum var. A diye bir sınıfım var.Bu A sınıfı B den miras alıyor.Peki A objesi oluşturulduğunda hangisinin constructor ı önce çalışacak.OOP yi az buçuk bilen bir kişi önce parent(B) sonra (A) nın constructorları çalışacak diyebilir.
Şimdi 3 örnek kod inceleyelim.PHP ve Java ve ASP.NET te ne gibi tepkiler veriyor. Java
public class Sinif1 extends Sinif2 {
public Sinif1()
{
System.out.println("Sınıf1 constructor çalıştı");
}
public static void main(String[] args) {
Sinif1 a = new Sinif1();
}
}
public class Sinif2 {
public Sinif2()
{
System.out.println("Sinif2 constructor çalıştı");
}
}
Ekran çıktısı şu olacaktır:
Sinif2…Çok kademeli Kagori Sistemi (Multilevel Category System)
Özellikle e ticaret ile uğraşan arkadaşlar yakından bilirler. Bu kategori mantığı eğer kötü kurulursa çok büyük sıkıntılar yaratabilir. Peki nasıl yapmalı? İşte bu bölümde bu konuyu anlatmaya çalışacağım?
Sınırsız alt kategori
Sınırsız alt kategori gibi bir sistem düşünüyorsak bu işi tek tabloda Parent- Child ilişkisine göre yapmamız mantıklı olacaktır.Tablomuzu şu şekilde tasarladığımızı düşünelim.
category_id, category_name,parent_category_id
burada belli olduğu gibi categoryid bir kategoriye ait id değerini, name o kategorinin adını, parentcategory_id ise o kategorinin ana hangi ana kategoriye ait olduğunu söyler.
Şu şekilde düşünebiliriz.Tabloların id değerleri 1…
PHP de Türkçe karakterler için HTML SPECIAL CHARS Metodu
Veritabanınızda "Ç", "ç", "Ö", "ö", "Ü", "ü" gibi karakterleri görmek pek hoş olmuoyr.Hem search yaparkende sıkıntı yaratıyor.Bunu için aşağıdaki basit metodu yazıp paylaşmak istedim.
Kolay Gelsin...
/**
*
* @param string $string
* @return string
*
* HTMLSPECIALCHARS decode for Turkish chars
*/
function replaceTrHtmlSpec($string)
{
$string = htmlspecialchars_decode($string);
$search = array("Ç", "ç", "Ö", "ö", "Ü", "ü");
$replace = array("Ç", "ç", "Ö", "ö", "Ü", "ü");
$string = str_replace($search, $replace, $string);
return…Thrift ile ölçeklenebilir Web
Nedir?
Thrift, Facebook tarafından geliştirilen, C++, C# , Cocoa , Erlang , Haskell , Java, OCaml, Perl, PHP , Python, Ruby, Smalltalk dilleri ile istekler yapıp cevaplar alabileceğiniz bir RPC framework'üdür. Örneğin, PHP kodu içinde, PHP methodlarını kullanarak arka tarafta çalışan bir Python uygulamasına istek gönderip cevap alabilirsiniz.
Thrift, binary bir protokol kullandığı için SOAP gibi alternatiflerinden daha performanslı bir iletişim katmanı sunar.
Ayrıca en güzel özelliklerinden birisi de asenkron işlemlere izin veren yapısıdır.
Kullanım alanları
Thrift, desteklediği diller arasındaki esnek geçişlerle, bir dil ile karşılaştığımız kısıtları başka bir dil ile yazdığımız…
PHP, MSSQL ve UTF-8 in Yolu Birgün Kesişmiş
Bilirsiniz ki çok dilli bir web uygulaması için standart UTF-8 dir.PHP ile Mysql ve ya Postresql kullandığınız zaman bununla ilgili bir sorun yaşamazsınız.Çünkü bu veritabanlarında utf8 şeklinde bir karakter seti vardır.Fakat söz konusu Bill Gates amcanın teknolojik oyuncakları olunca işler biraz daha değişiyor.Hele ki db ye müdala şansınız da pek yok ise :):)
Malesef MSSQL UTF8 şeklinde birşey tanımıyor.Doğal olarak ta sizin göndermiş olduğunu yada size gelen canıım ülkemin güzel türkçe karakterleri de patlıyor.Eğer ama Türkçe karakter sıkıntısını çözmek ise uygulamanın charsetini iso-8859-9 yapmanız olayı çözer.
Fakat uygulamanıza Alamanca Fransızca da ekleyeceğim o yüzden…
IIS 7.0 Üzerinde PHP MemCache ve Codeigniter Kullanımı
Windows 2008 Server üzerinde bulunan IIS 7.0 ile PHP olayı Windows ta da güzel hale gelmiş.Sadece PHP kurmak kolay ama biraz atraksiyon yaptığınızda meşakatli bir süreç sizi bekliyor.
Bu yazının amacı sizi bu meşakatli süreçte biraz olsun rahatlatabilmek.
IIS 7.0 Üzerine PHP Kurulumu Öncelikle FastCGI modülünü IIS e kurmanız gerekli.Role Service kısmından bu işlemi gerçekleştirebilirsiniz.

Sonrasında Handler Mappings->Add Module Mapping kısmına tıklıyoruz.

Aşağıdaki şekilde PHP yi ekleyin.

Sonrasında
<?php phpinfo(); ?>
ile sonuç alalım. Sıra Geldi MemCache Kurmaya code.jellycan.com/memcached/ adresinden size uygun paketi indirin. Paketi herhangi bir yere açın (mesela…
Codeigniter ile MSSQL Kullanımı
Codeigniter php de en sık kullanılar şeker mi şeker bir framework.Kullananlar bilir bu framework u kullanmaya başladınız mı evladınız gibi seversiniz :)
Gün gelir de Codeigniter üzerinden MSSQL e bağlantı kurmanız gerekir ise daha düzgün bir ifade ile MSSQL ile çalışmanız gerekir ise yapmanız gereken işlemleri anlatmaya çalışacağım.
Öncelikle config.php dosyası üzerindeki bağlantı ayarlarında şunu yapıyoruz.
$db["default"]["hostname"] = "Driver={SQL Server Native Client 10.0};Server=BDT018;Database=Blog;";
$db["default"]["username"] = "sa";
$db["default"]["password"] = "********";
$db["default"]["database"] = "Blog";
$db["default"]["dbdriver"] = "odbc";
$db["default"]["dbprefix"] =…JSON da Karakter Problemi ve Çözümü
Şöyle birşey düşünelim DB charset i UTF8 değil. DB den kayıt çekip JSON ile bir yerlere vereceğiz. Tam bu sırada işte şöyle bir problem ile karşılaşıyoruz... Vereceğiniz dizinin elemanlarında bulunan stringlerde Türkçe bir karakter geçtiğinde PHP deki json_encode bunu NULL olarak çeviriyor.
Çözümü basit.Dönüşümü olmayan eleman
$arr["addrStreetName"] = $fld[3]->value;
olsun... Uygulanması gereken PHP metodu ise :
$arr["addrStreetName"] = utf8_encode($fld[3]->value);
olmalı. Herkese kolay
PHP de Sınıf Sabitleri
PHP de bir sınıf içinde sabit değerler tanımlanabilir.Tanımlanan bu sabit değerler static özelliği gösterir.Yani kod içinde erişim şekli self::sabit veya parent::sabit gibi olmalıdır. Kod ile örneklemek gerekir ise.
<?php
class parentClass
{
const A = 1;
const B = 2;
function __construct()
{
}
function __destruct()
{
}
}
class subClass extends parentClass {
const C = 3;
const D = 4;
function __construct() {
}
public function getConsts()
{
echo "A : ".parent::A."<br>B : ".parent::B;
echo "C : ".parent::C."<br>D : ".parent::D;
}
…
RSS
E-Bülten