PHPStorm bu güne kadarki en eli yüzü düzgün PHP IDEsi

Çıktığından itibaren kullanmaya başladığım ve son 3 yıldır tüm web geliştirme işlerimi PHPStorm IDEsini kullanıyorum.

Java tabanlı NetBeans’i modifiye ederek bir IDE (Integrated Development Environment) yani Entegre Geliştirme Ortamı oluşturdular.

PHP’de en büyük problem entegre bir geliştirme ortamı olmaması. Yani derleyiciyle iyi konuşan, iyi bir hata yakalama, test ortamı veya kod ve yazım zekası na sahip bir editör bulmak çok kolay değil. Bunları, kullandığınız işletim sistemine uygun ayrı ayrı araçlarla sağlayabiliyorsunuz tabii ki, fakat entegre şekilde çalışmalarını sağlamak çok da kolay değil.

PHPStorm ilk çıktığında minimal bir konfigürasyon sunarak kod yazım zekası ile bazı temel yazılım geliştirme araçlarını sunuyordu fakat çok hızlı bir şekilde birçok modern web geliştirme dilini (less, sass, haml) ve birçok uygulama geliştirme çatısını destekler hale geldi. Minimal ayarlarla gelişmiş bir editörden ek farkı yok fakat aşağıda kısaca sıraladığım entegre araçları aktif hale getirildiğinde gerçekten çok güçlü bir geliştirme ortamına dönüştürebiliyorsunuz. İşte benim çok sık kullandığım ve sizin de yüksek ihtimalle işinize yarayacak bazı özellikler ve araçlar.

Gelişmiş kod yazım zekası sadece php’de değil php tabanlı bir web projesinde kullanabileceğiniz olası tüm kodları (html, javascript, css, xml) geliştirmek için kullanabilirsiniz. Ek olarak bu altyapılardaki tüm popüler uygulama çatılarını (framework) kod yazım zekasında kullanılabilir şekilde bulabilirsiniz.

Eş zamanlı hata yakalama, xdebug ile çalışan web uygulamanızı editörünüzle entegre ederek eş zamanlı uygulama analizi yapıp hata yakalayabilirsiniz.

Versiyon kontrol sistemi entegrasyonu ile kodunuzu subversion, git gibi depolardan indirip yönetebilirsiniz.

Veritabanı bağlantılarınızı sadece editörünüzden veritabanınıza erişmek için değil kodunuzda yazdığınız SQL’leri kodu yazarken çalıştırıp test edebilir, SQL geliştirirken kod yazım zekası kullanabilirsiniz.

Bunların dışında otomatik yayınlama (deployment), otomatik ftp yüklemesi, zen coding, kod template’leri vs vs gibi bir ton diğer özelliği var.
3 yılda 6 ana sürüm çıkartarak çok kararlı ve güçlü bir php geliştirme ortamı sunuyor jetbrains. Malesef paralı olan ide diğer profesyonel idelere göre çok ucuz, ilk aldığınızda 100 dolar sonasında her yıl ana sürüm güncellemelerini almak için 50 dolar ödemek zorundasınız fakat yaptığınız yatırımı kesinlikle karşılıyor.

Jetbrains PHPStorm’daki birçok aracı Ruby, Python için geliştirdikleri IDE’ler için de sunuyor. Eğer Python veya Ruby yazıyorsanız kesinlikle PyCharm ve RubyMine’a göz atmanızı tavsiye ederim.

PHPStorm’un sayfası için: http://www.jetbrains.com/phpstorm/

Web projeleri icin Springloops

Yaklasik 1 yildir springloops’da denemeler yapiyordum 2-3 ay oncesine kadar. Ufak tefek projelerimin svn deposu idi sadece, sonra deployment ozelliklerini inceledim ve birkac projeyi springloops ustunden deploy yapmaya basladim. Ancak gecen ay mfyz.com’un svn deposunu paketleyip springloops’a tasidim. Son 2 haftada da on yuzde olmasa da altyapida cok fazla degisiklik yapiyorum. Otomatik deploymentlar ile dogrudan yayina aliniyor, su an sadece ben gelistiriyor oldugum icin manual deployment’a ihtiyac duymuyorum.

Bu benim hikayemdi, ama genel olarak neredeyse butun web projelerinizde kullanabileceginiz, kullanmanizi tavsiye ettigim bir servis springloops. Eger birden fazla proje ve 5 developerdan daha fazla, veya buyuk dosya boyutuna sahip bir projede calisiyorsaniz aylik $10 odeyerek en ufak paketini alabilirsiniz. Aktif calistiginiz proje sayisi birden fazla ise aylik $10 ~ yillik $120 boylesine guzel bir servis icin hicbirsey. Ayrica tek aktif proje ve belli bir disk alani limiti ile ucretsiz uyelik de sunuyorlar, servisin tum yeteneklerini sure siniri olmadan deneyebilirsiniz.

FTP veya SCP/SSH ustunden deployment’lar, version control’deki eventlara alert veya web-script atayabilmek de otomatize edilmis bir ortam olusturmak icin buyuk kolayliklar saglayabilir.

Buradan inceleyebilirsiniz: http://www.springloops.com/

Subversion sunucu yayını yapmak ve sunucu erişimi

Bu dökümanda sunucumuza svn kurup yayına açmak ve geliştirici grubumuzun erişimine açmayı göstereceğim. (SVN kullanımı ile ilgili bilgiyi https://mfyz.com/tr/subversion-ile-proje-gelistirmek/ dökümanından edinebilirsiniz)

SNV yayını yapmak (snvserve)

SVN’i dışarı açmak için subversion-tools paketindeki “svnserve” mini server’ini kullanacağız. Öncelikle istediğiniz portu firewall’ınızdan forward edin. Ben 1234 nolu portu bunun için kullanacağım örnek olarak. Eğer parametre vermeden (yani özellikle istediğiniz porttan yayın yapmaya çalışmazsanız) svnserve varsayılan olarak 3690 portundan yayın yapacaktır.

svnserve ile istediğimiz porttan yayın açmak için :

komutunu verin, -d parametresi ile deamon olarak çalışmaya başlayacaktır. Yani siz logout olsanız bile çalışacaktır. –listen-port parametresi ise anlayacağınız gibi port belirtmek için kullanılır. Eğer belirlemezsek bahsettiğim gibi 3690 portundan çıkacaktır yayın.

Sunucunuzun init scriptlerine başlangıçta çalışması için svnserve’i eklemenizi öneririm. Unutmayın svnserve’i init’de çalıştırıyorsanız -d parametresi yerine -i parametresi vererek kullanın. -i init modudur. Okumaya devam et “Subversion sunucu yayını yapmak ve sunucu erişimi”

Subversion ile proje geliştirmek

Subversion nedir?

Subversion, adından da anlayabileceğiniz gibi sürüm yönetim sistemidir. Dosyaları ortak bir depoda tutup sürüm yönetimi sağlar. Subversion’u (genel kısaltması “SVN”) ile proje geliştirirken projenizin sürümlendirilmesini, global bir geliştirme ortamı sunmak amacı ile kullanırız.

Neden Subversion kullanayım?

Subversion’un proje geliştirirken birçok artısı var. Öncelikle her dosyanızın sürümlerini takip edebiliyorsunuz. En güzeli de subversion size o kadar güzel bir inceleme ortamı sunuyor ki, subversion ile eski sürüm dosyalarınızı, yeni sürümlerde neler değişmiş birebir görebiliyorsunuz. Diff görüntüleyici programlar kullanarak (ki çoğu GUI bazlı subversion clientlarında diff görüntüleyici vardır) son sürümde hangi satırlar eklenmiş hangileri değişmiş. hangi satırlar silinmiş kolaylıkla görebilirsiniz. Bir diğer güzelliği de editör bazlı görebilmektir. Yani subversion’a atadığınız kullanıcılar veya sisteme ait kullanıcıların subversion’u kullanması iznini vererek. Bu sürümlerdeki değişimlerin kimler tarafında yapıldığını görebilmektir. Mesela bir düzenleme yapıldı ve ya hatalar oluştu ya da kodlar kayboldu, ya da gerçekten güzel bir düzenleme yapıldı, bunu kimin tarafından yapıldığını görebilirsiniz.

Ayrıca kendi dosya transfer protokolü sayesinde herhangi bir ftp gibi bir sunucu kurmanıza gerek kalmayacaktır. Okumaya devam et “Subversion ile proje geliştirmek”