PhpStorm'u Efektif Kullanabilmek

Günümüzde, PhpStorm barındırdığı birçok özellik itibariyle birçok kullanıcının kullanmakta olduğu en önemli PHP geliştirme aracıdır. Eğe hala Notepad++ ile bir şeyler geliştirmeye çalışıyorsanız, bazı alışkanlıklarınızı değiştirmeniz sizin için daha iyi olabilir. Ayrıca üniversitede okuyorsanız, PhpStorm da dahil, herhangi bir Jetbrains IDE'sini bir yıl boyunca bedava kullanabilirsiniz. Bunun için yapmanız gereken tek şey bu linke tıklayıp, edu.tr uzantılı email adresinizle Jetbrains'in sitesine kayıt olmak.

PhpStorm'un daha benim de tam olarak hakim olamadığım birçok özelliği var. Ben sık olarak kullandığım, önemli olduğunu düşündüğüm birkaç kısayoldan bahsedeceğim. Daha da detayını öğrenmek isterseniz yine bu linke tıklayarak, benim aslında özetini geçeceğim, ana kaynak olan video serisini izleyebilirsiniz.

1. Renk Şemaları

Öncelikle, renklendirmeleri nasıl değiştirebileceğinizden bahsedelim. İlk yapmanız gereken, daha önceden hazırlanmış, kullanabileceğiniz bu temalardan herhangi birini seçmek. Bunun için de daha önceden hazırlanmış olan şemalardan birini seçmeniz lazım. Bu şemaların demolarına da bu linkten ulaşabilirsiniz. Kendi favorim de olan Earthsong'u nasıl kullanabileceğinizi örnek ile anlatacak olursam, öncelikle .icls uzantılı tema linkine tıklıyorsunuz ve kaynak kodunu görüntülediğiniz o kısım, raw'a basarak linki elde etmeye çalışıyoruz. Daha sonra bu linki elde edince:
wget https://raw.githubusercontent.com/daylerees/colour-schemes/master/jetbrains/earthsong.icls -P ~/.PhpStorm*/config/colors
Buradaki PhpStorm* olan kısmı, bu yazıyı okuduğunuzda hangi PhpStorm versiyonu yayında olacak bilemediğim için, wildcard olarak belirttim. PhpStorm 2016.3 versiyonunu kullanıyorsanız, dosya ~/.PhpStorm2016.3/config/colors klasörüne indirilecektir. Daha eski versiyonlardan birisini kullanıyorsanız, .PhpStorm kısmını WebIde olarak değiştirmeniz gerekebilir, o yüzden home dizininde CTRL + H ile gizli klasörleri kontrol edip, hangi dizine sahip olduğunuzu görebilirsiniz.

Devamında bu şemayı aktif etmek için, yapmanız gereken şey File->Settings->Editor->Colors & Fonts->Scheme 'den şemanızı seçmek olacak.
1-color-schemes-earthsong
Not: Şemaları görebilmek için, PhpStorm'u yeniden başlatmanız lazım. Ayrıca yine burada, Settings->Editor->Colors & Fonts'un sekmelerinin altından, fontun altından font büyüklüğünü veya satır uzunluğu gibi çeşitli ayarlamaları da yapabilirsiniz.

2. Eklentiler

PhpStorm ve diğer JetBrains ürünleri için, birçok geliştiricinin de katkı sağladığı başka eklentiler de var. Örneğin biraz önceki adımları tamamlayıp renk şemasını değiştirdiğinizi düşünürsek, burada farkedeceğiniz üzere, sadece editörün renklerinin değiştiğinizi göreceksiniz. Bu ayarların tüm PhpStorm'a yayılmasını istiyorsanız, Color Ide eklentisini yüklemeniz lazım. Bunu yüklemek için de Settings->Plugins->Browse repositories->Color Ide'yi yükleyip, PhpStorm'u restartlamanız lazım.

Buradan başka eklentileri de inceleyebilir ve yükleyebilirsiniz.
Eklentiler

3. Kısayollar

Mouse yerine kısayolları kullanabilmek, sizi en çok hızlandıracak ve IDE kullanımının etkisini gösterebilmesini sağlayacak en önemli etkenlerdendir. Kısayolları düzenleyebilmek için Settings->Appearance & Behavior->Keymap sekmesi altından bazı düzenlemeler yapalım. Burada her bir özelliğe kendiniz atama yapabileceğiniz gibi, ben sık kullandığım birkaçını belirteceğim. Örneğin, Editor Actions altında Clone Caret Below veya Clone Caret Above, en yararlı özelliklerden birisi. Mesela aynı dosya içerisinde birden çok imlece ihtiyacınız var, örnek kullanım açısından da aynı kelimeyi aynı hizada teker teker kopyala yapıştır yapmanız lazım, bu durumda bu özelliği kullanmak çok işinize yarayacaktır. Mesela ben burada CTRL + SHIFT + Q ataması yaptım, örnek kullanımı aşağıdaki resimde görebilirsiniz. Size bunun başka bir şeye atandığını söylecektir, bu gibi durumlarda diğer kısayolu da değiştirebilir veya kullanmayacaksanız, herhangi bir şey atamadan bırakabilirsiniz. Mesela ben alttaki kısmı bu özelliği kullanarak yaptım. Bunu diğer şekilde yapmanın yolu da, bir satıra bunu yazıp daha sonrasında o satır üzerinde CTRL + D'ye basmanız olacaktır. Bunu da dilerseniz değiştirebilirsiniz.
Kısayollar
Yine bir başka önemli özellik, Main Menu->Navigate sekmesi altındaki File ayarlaması, şimdi bu en sık kullanılanlardan birisi olacağı için ben buna CTRL + B atıyorum. Bunu uyarlarsanız, bundan sonra her CTRL + B'ye bastığınızda herhangi bir dosyaya kolaylıkla geçiş yapabilecek, tek tek dosyayı aramak zorunda kalmayacaksınız. Default olarak gelen bir başka özellik ise CTRL + N ki bunla da sınıflarınız arasında geçiş yapabilirsiniz. Son olarak tüm IDE üzerinde arama yapmak istiyorsanız da Other->Search Everywhere'e atama yapmalısınız. Ben burada CTRL + H kullanıyorum. Yine benim sık kullandığım Navigate altındaki bir başka sekme ise Main Menu -> Navigate -> File Structure ki bu fonksiyonlarınız arasında geçiş yapmanızı sağlıyor. Sık kullandığım için ben buna CTRL + T atadım. Alacağınız sonuç da alttaki gibi olacaktır. Yine bu özellik sayesinde, sınıflarınız içinde hangi metodların private ya da public olduğunu da görebilirsiniz, renklendirme ve ikon seçimini ona göre yapıyor, anlayacağınız her şeyi teker teker gözle aramaktansa, yerine kullanmanız gereken bir özellik.
Kısa Yollar - Dosya Yapısı
Eğer dosya ve sınıf bulduğunuz gibi direkt olarak fonksiyonlara ulaşabilmeyi istiyorsanız da, Main Menu->Navigate->Symbol'a atama yapabilirsiniz. Ben burada CTRL + M atamasını kullanıyorum. Yine default gelen bir başka özellik de CTRL + E ki bu da dosya geçmişinizi gösteriyor. Bunu da değiştirmek isterseniz, Main Menu->View->Recent Files atamasını değiştirmeniz lazım.
3-shortcuts-history
Bir başka yararlı özellik ise, yeni dosyaları klavye ile oluşturabilmek. Bunun için de Main Menu->File->New atamasını yapmanız lazım, ben şahsen CTRL + W kullanıyorum. Bunun yanında da PHPDoc oluşturmak için de kısayol mevcut. Plug-ins->PHP->PHPDoc Blocks kısmına atama yapmalısınız. Ben burada CTRL + P kullanıyorum. CTRL + P'ye bastıktan sonra fonksiyonları seçmeniz lazım, otomatik PHPDoc sizin için oluşturulacaktır. Burada yine CTRL + A'ya basarak hepsini seçebilir ya da tek tek PHPDoc oluşturmak istediğiniz metodları belirleyebilirsiniz.
3-shortcuts-phpdoc
Burada en önemli seçimlerden biriyse, find and replace yerine kullanabileceğiniz, yine birden çok imleç kullanmanızı sağlayan bir başka kısayol. Main Menu->Edit->Find->Add Selection for Next Occurence ataması ki ben burda CTRL + Q kullanıyorum. Ne işe yaradığını resmin daha iyi anlattığını düşünüyorum. Örneğin tüm variable yazan kısımları seçip, değiştirmek istediğinizi varsayalım. CTRL + Q'ya basarak hepsini imleç ile seçebilir, daha sonrasında dilediğiniz gibi değiştirebilirsiniz.
Sonrakini imleç ile seç
Bunun yanında, tek tek benim gibi CTRL + Q'ya basmak yerine, tek komut ile tüm aynı kısımları seçmek istiyorsanız, yukarıdaki örnek için $variable'ları, Main Menu->Edit->Find->Select All Occurences'ı değiştirmeniz lazım. Ben burada CTRL + Tab kullanıyorum.

Bu kısmı bitirmeden önce, belirtmek istediğim bir başka özellik ise word-wrap özelliği ki ne olduğunu açıklayacak olursam, genişliği sığmayan şeyler için yatay çubuk oluşturmaktansa, genişliğe sığdıran özellik oluyor. Bunu da aktif etmek için, Main menu->View->Active Editor->Use Soft Wraps'a atama yaparak, dilediğiniz kısımlarda bunu etkinleştirmelisiniz. Ben burada Alt + S kullanıyorum. Bunu yapabileceğiniz gibi, tek tek bu ayarı yapmaktansa, Settings->Editor->General'dan Use soft wraps in editor'ü tickleyebilirsiniz, yine buradan CTRL + Mouse Wheel ile zoom yapma olayını da etkinleştirebilirsiniz.

4. Dosya Şablonları

Dosya şablonları, her yeni dosya oluşturduğunuzda en üstte çıkan, yazar, tarih gibi bilgilerin yer aldığı kısımlardır. Örneğin her projede, en üstte yorum olarak isminiz ya da tarihin yer almasını istemiyor, başka bir şeyin yer almasını istiyorsanız, Editor->File and Code Templates kısmından, örneğin yandan PHP'yi seçebilir ve bu kısımları kendinize göre ayarlayabilirsiniz. Yine her türlü Include'u ya da kendi dosya şablonunuzu da oluşturabilir veya çağırabilirsiniz. Benim kullanmadığım yazar ve tarih gibi kısımları kaldırmak için de Includes yan sekmesi altında PHP File Header'daki kısımları silebilirsiniz.
Dosya Şablonları
Ufak bir not, PHP dosyalarınızdaki formatı da değiştirmek için, Editor->Code Style->PHP kısmından bazı ayarlamalar yapabilirsiniz. Bu kısım tamamen size kalmış, örneğin, her bir parantezden sonra boşluk olmasını istiyorsunuzdur, ya da dizilerin anahtar-değer eşleşmelerini yaparken, değerlerin hizalanmasını istiyorsunuzdur, tüm bu özellikleri oradan değiştirebilirsiniz.

5. Canlı Şablonlar

Canlı şablon tanımı biraz garip olsa da, ne olduğunu basitçe anlatınca anlayacağınızı düşünüyorum. Örneğin editörde lorem yazdınız ve tab'a bastınız, bir anda tüm ekranınıza Lorem Ipsum dolor diye giden o meşhur içerik doldurma yöntemi karşınıza çıktığını göreceksiniz, bunu sağlayan live templatelerdir. Örneğin benim gibi CTRL + H'ye her şeyi ara kısayolunu atadıysanız, CTRL+H'ye basıp daha sonra da Insert Live Template'e basarak, mümkün olan tüm Live Template'leri görebilirsiniz, örneğin eco yazıp tab'a basarsanız karşınız echo ""; çıktığını göreceksiniz. Bunları düzenlemek için örneğin BENİM ADIM BURAK yazıp, hepsini imleç ile seçin ve Search Everywhere kısa yolunuzu kullanarak, beni takip ettiyseniz CTRL + H'ye basarak, Save as Live Template'e basın. Abbrevation, biraz önceki eco gibi, kısayol olarak kullanacağınız kısım. Örneğin oraya burak yazar ve kaydedersem, editörde burak yazıp tab'a bastığınızda karşınıza BENİM ADIM BURAK yazısının geleceğini göreceksiniz. Değişken kullanmak isterseniz de başına ve sonuna dolar işareti koymanız lazım, örneğin pubsf template'ini incelerseniz alttaki gibi olduğunu göreceksiniz.
public static function $NAME$($PARAMETERS$){
    $END$
}
Bu özellik en önemli ve en çok zaman kazandıracak özelliklerden birisi, o yüzden mutlaka denemenizi öneririm.

6. Refactoring

Refactoring PhpStorm'un sağladığı bir başka güzel özellik. Refactoring kullanarak, klasör veya dosyaların ismini değiştirebileceğiniz gibi metodları da düzenleyebilirsiniz.

Örnek olarak aşağıdaki kod parçacağını ele alalım. Görebileceğiniz üzere kendini tekrar eden yönlendirme kısmı var ki kodun kendini tekrarlamasını istemeyiz.
class Demonstration{

    public function forgot()
    {
        if($this->user->loggedIn){
            http_redirect('url');
}
        $this->render->forgot_view();
    }

    public function reset()
    {
        if($this->user->loggedIn){
            http_redirect('url');
}
        $this->render->reset_view();
    }

}
Tekrar eden bir satırı seçip, Refactor'a basar ve Refactor This seçeneğini seçip, Method'a basarsanız, bunu bir method olarak yeniden oluşturabilirsiniz.
class Demonstration{

    public function forgot()
    {
        $this->redirectLoggedIn();
        $this->render->forgot_view();
    }

    public function reset()
    {
        $this->redirectLoggedIn();
        $this->render->reset_view();
    }

    public function redirectLoggedIn()
    {
        if ($this->user->loggedIn) {
            http_redirect('url');
        }
    }

}
Bir başka örneği ele alacak olursak, örneğin bir sınıf bir başka sınıf üzerinden genişletiliyor olsun, genişletilen sınıfın bir methodunu da üst sınıfa taşıyıp, başka genişletilmiş sınıflarda da kullanmak istiyorsunuz. Bunun için Refactor seçeneğinden, Pull Members Up'ı seçip, o methoda tıklayarak, bu methodu kes yapıştır yapmaktansa, daha hızlı ve efektif bir şekilde bir üst sınıfa aktarabilirsiniz.

Şimdilik burada bu yazıyı sonlandırıyorum, daha birçok özellik var ama en temel ve başlangıç için en önemli özellikler bunlar, başka merak ettiğiniz bir özellik olursa yine yardımcı olmaya çalışırım.