MacOSX üzerinde php ile geliştirme yapmak istiyorsanız ilk yapmanız gereken şey geliştirme ortamınızı hazırlamak olacaktır.

MacOSX üzerinde halihazırda kurulu bir apache ve php sürümü bulunuyor zaten. Bunları basitçe aktif hale getirebilir ve geri kalan ayarları elle yapmak isteyebilirsiniz fakat macosx ile yüklü gelen php, apache sürümü ve eklentileri, standart ihtiyaçlara bile cevap veremeyebilir. Basit bir wordpress kurulumu bile gd, zip, iconv ve benzeri php eklentilerine ihtiyaç duyacaktır. Dolayısıyla bir noktada php kurulu php sürümünü güncellemeye ihtiyaç duyabilirsiniz. Apache için de durum aynı. Ayrıca sadece eklentiler değil, mysql gibi birkaç sunucu uygulaması da kurmak zorunda kalacaksınız. Bunları tek yerden başlatıp durdurabilmek için de başka araçlar bulmanız veya geliştirmeniz de gerekebilir.

Varolan apache ve php kurlumunu kullanmak dışında en hızlı kurlumu, MAMP (MacOSX Apache MySQL PHP) ile yapabilirsiniz. Bir çok genel eklentiyle beraber universal olarak derlenmiş ve paketlenmiş bir uygulama diyebiliriz MAMP için. MAMP ile birkaç dakika içinde standart bir web geliştirme ortamını ayağa kaldırabilirsiniz.

http://www.mamp.info/ adresinden indirebileceğiniz MAMP, basit bir şekilde kurulabiliyor. Applications klasörünüzde MAMP adında bir klasör içinde herşeyi toplu bir şekilde bulabileceğiniz MAMP, birçok ayar dosyasını da barındırıyor. Dolayısıyla Web root dizininizi kolayca değiştirebilir, php.ini veya my.cnf'i modifiye ederek istediğiniz eklentileri aktifleştirebilir pasifleştirebilirsiniz.

http://www.mamp.info/en/mamp/index.html adresinden MAMP ile beraber gelen tüm kütüphane / eklenti ve sunucu yazılımlarının listesini görebilirsiniz. MAMP'in standart sürümü ücretsiz ve basit bir yönetim arayüzü sunuyor.

MAMP
Eğer vhost, dns, email sunucusu ayarlarınızı görsel bir arayüzde yönetmek istiyorsanız tek seferlik satın alabileceğiniz bir lisans ile MAMP PRO yani sadece yönetimsel arayüz uygulaması satın alarak varolan MAMP kurulumunuzu kolayca yönetebilirsiniz.

MAMP PRO
Birkaç ipucu vermem gerekirse, MAMP PRO'da çok göz önünde olmasa da "File > Edit Template > ..." menüsünden php.ini, my.cnf, httpd.conf gibi ayar dosyalarınıza hangi dizinde olduklarını çözmeye gerek kalmadan ulaşabilirsiniz.

Web root klasörünüzü (kullanıyorsanız) Dropbox'unuzda bir dizini belirterek tüm web geliştirme dosyalarınızı ve projelerinizi dropbox'da tutarak anlık yedekleme sağlayabilirsiniz.
iOS uygulaması geliştirmek bu günlerde oldukça popüler. Turkiye'de de birçok oyun geliştiricisi iOS platformlara yönelmeye başladı.

Uygulamanızda geliştireceğiniz gelir modeliniz bir şekilde Apple ödeme sistemine bağlanmak zorunda çünkü Apple uygulama geliştirici kontratınıza göre uygulama üzerinde yapacağınız herhangi bir satış modelini Apple ödeme sistemi üzerinden yapmak durumundasınız. Apple uygualama içi ödeme sistemini kullanmanın avantajları ve dezavantajları var.

En büyük dezavantajı her ödemede, Apple'a 30% vermek. Bunun dışında ödemeleri doğrulamanın teknik zorlukları da var. Bunun dışında avantajları, dezavantajlarını unutturacak kadar değerli. Çünkü iOS üstünden yapılacak bir alışverişte herhangi bir ödeme bilgisi sorgusu olmayacak, kullanıcılar ödeme bilgilerini zaten sistemde tanıtmış durumda. Yani bir ödeme kabul edebilmek aslında sadece bir onaylama kutusuna indirgeniyor. Çoğu durumda tek onay sorusuna cevap vermek ve Apple kimlik şifresini doğrulamakla ödeme sağlanabiliyor.

Bir diğer avantaj da, herhangi bir ödeme yönetim sistemi, banka vs gibi bir entegrasyonla uğraşmak durumunda olmamanız.

Şimdi gelelim entegrasyona, iOS geliştirici (objective-c) tarafında gerekli entegrasyonu StoreKit denilen bir Apple arabirimi ile iOS uygulamanıza yapmanız gerekiyor. Bazi amatör programcılar veya sunucu bağımsız uygulama yazmaya çalışan geliştiriciler ya gözden kaçırıyorlar ya da gerek görmüyorlar ama aslında StoreKit'den aldığınız tüm fatura kopyalarını (receipts) Apple sunucularına göndererek doğrulamanız gerekiyor.

Devamını Oku →
Her yerde ajax kullanımından geçilmez oldu. Ajax, hem kolaylıklarından hem de RIA'in (Rich Internet Applications) temeli olduğundan popülerliği gitgide artıyor. Karşımıza her yerde çıkıyor ve artık jquery gibi frameworkler sayesinde ajax çağrıları yapmak için tek satırda 5-10 karakterlik bir javascript kodu bile yeterli oluyor.

Bir php kodunda genelde çıktı verirken normal html etiketleri kullanıp tüm sayfayı tasarlıyoruz fakat genelde bu sayfalar bir verit yapısının görüntüleri (view) oluyor ve aynı çıktıyı javascript ile alıp basmak, hatta bazen ajax ile dışarıya bile vermek gerekebiliyor.

Artık az sonra bahsedeceğim method ile, dosyaları tasarlarken 2 türlü kullanımı için tasarlayacaksınız. Yani hem normal erişim ile hem de o sayfayı ajax ile kullanabilecek şekilde düşüneceksiniz. Burada ajax çağrısı olduğunu yakalamak için genel bir teknik olarak get methodu ile bir değişken gönderip onu izleyebilirsiniz. Mesela kayit.php?ajax=1

Bu, işin ilkel noktası. Ajax çağrısı olup olmadığını yakalamak için artık sunucu ortam değişkenleri arasında $_SERVER[HTTP_X_REQUESTED_WITH] değişkeni ile çağrı türünde değer xmlhttprequest ise yapan client'in kullandığı protokolu alabiliyorsunuz. Genellikle içindeki değer "xmlhttprequest" oluyor zaten. Yani bir çağrının ajax olup olmadığını bu şekilde kolayca kontrol edebilirsiniz.

Ufak şekilde örneklemek gerekirse :
$kisiler = array('Fatih', 'Ahmet', 'Mehmet', 'Zeynep');

// ekrana basalim
print "<ul>";
foreach( $kisiler as $kisi ){
    print "<li>$kisi</li>";
}
print "</ul>";
Bu kodda isimleri liste çıktısı alırsınız. Eğer javascript ile bu veriye erişmek istersek ajax çağrısı ile bu sayfayı çağırabiliriz ama işlenmiş html kodundan o isimleri almak zor olur. Ya da sadece belirli bir kısmını almak isteyebiliriz. Bunun için basitçe :
$kisiler = array('Fatih', 'Ahmet', 'Mehmet', 'Zeynep');

// ajax cagrisi ise json donelim
if( $_SERVER[HTTP_X_REQUESTED_WITH] ){
    die( json_encode($kisiler) );
}

// ekrana basalim
print "<ul>";
foreach( $kisiler as $kisi ){
    print "<li>$kisi</li>";
}
print "</ul>";
Bu kod eğer normal istek yapılırsa
<ul><li>Fatih</li><li>Ahmet</li><li>Mehmet</li><li>Zeynep</li></ul>
çıktısı; ajax ile istek yapıldığı zaman :
["Fatih","Ahmet","Mehmet","Zeynep"]
çıktısı verecektir.

Bu şekilde gelen çağrılardan ajax olanlarına sadece kisiler dizisini jsona çevirip sayfayı durduruyoruz. Javascript ile gelen json'u kolayca işleyebilirsiniz.

Burada json'a çevirip javascriptde işlemek zorunda değilsiniz. Ajax ile aldıktan sonra içeriği basmak istediğiniz yere uygun html kodu da üretebilirsiniz bu noktada.


Hazırlayan : Mehmet Fatih YILDIZ

Popüler Etiketler

javascript js mfyz design form button jquery imza signature mail rss parse xml firefox download mobile startups xmlhttprequest ajax htaccess url cache job html css social integration api service network blog apache route router mod_rewrite apple macosx html5 input regex logo konsol terminal iphone ipad örnek kod tool google search ie css3 support browser twitter portfolio newsletter subscription icon ikon grafik banner calendar php itunes plugin optimization media screen bootstrap license xhtml wanda digital iOS sql query injection linux gimp howto less spam facebook pear mdb2 prepare execute pharma hack wordpress windows fstab ntfs date diff zaman tarih wireless share ubuntu auth http cms tebrik nasıl browsers table www subdomain redirect crossdomain framework osx player mysql export app server seo sosyal ios app store store in-app purchase purchase verification storekit itunes connect compile compiler on-the-fly language ipucu lifestream dokuman connect meta nedir notebook laptop lisans session cookie login link radio style optimizasyon analyse procedure applications free generator mssql pgsql oyun internet kitap chart doritos kampanya tytz statistics istatistik insanlar webkit web app music kontrol yapıları if switch mootools developer subversion svn assets proje ruffles git version control deployment phpstorm jetbrains ide editor box workspace opengraph graph object medya ui ux widget select db code sitemap development textarea open source internet explorer fql while coding database icons kurulum