Windows üzerinde geliştirme ortamı kurulumu
Published: 2023-02-20 20:27:24

# Windows Üzerinde Geliştirme Ortamı Kurulumu

Yeni yazılım öğrenmeye başlayan, ilk kurulumları nasıl yapacağını düşünenler için git, github'da proje oluşturma, ssh key ekleme, PHP için laragon kurulumu, composer kurulumu gibi konuları kısaca yazdım. 

# Windows üzerinde git kurulumu ve git bash ile unix command line kullanımı

- https://gitforwindows.org/ sayfasından git için gerekli kurulum dosyasını indiriyoruz ve çalıştırıyoruz. Herhangi bir değişiklik yapmadan ilerleyerek kurulum yapabilirsiniz. 
- Terminal'de unix command line kullanımı için **git bash** kullanılabileceği gibi, ben windows üzerinde terminal olarak "[Hyper Terminal](https://hyper.is/)" tercih ediyorum. 
- **Hyper Terminal** kurulumu için, Git bash kurulumundan sonra https://hyper.is 'den windows için kurulumu indirin, setup dosyasını çalıştırın. 
- Kurulum tamamlandığında hyper'a girin ve sol üstten **edit > preference** içerisine girin, içindekilerin hepsini silip [bu linkteki repository'den](https://gist.github.com/coco-napky/404220405435b3d0373e37ec43e54a23) ayarları kopyalayıp yapıştırın ve kayıt edin. Hyper terminali kapatıp açın, artık unix komutlarını hyper terminalde kullanabilirsiniz. 🎉
- Hyper terminal , çokça teması olan, ekleyebileceğiniz bir sürü pluginler, bulunan, kendinize göre özelleştirebildiğiniz bir terminal.

# Git ile local repository oluşturmak.

- Terminalde projenizin ana dizininde iken
> git init.

komutunu çalıştırarak projenize git versiyon kontrol sistemini eklemiş oluyorsunuz.
> git add .

komutu ile projenizin içerisindeki tüm dosyaları **staging area**(Git klasörünüzde bulunan ve bir sonraki kayıt işlemine dahil olacak olan kodları tutan dosya). Eğer spesifik bir dosyayı eklemek istiyorsak ilgili dosyanın adını uzantısı ile birlikte yazarak ekleyebiliriz 
>git add deneme.txt

**staging area**'daki kaydedilen kodları bu komutun yazıldığı andaki hali ile kayıt etmek için aşağıdaki komutu çalıştırıyoruz ve yaptığımız değişiklikler local repository'mize kayıt edilmiş oluyor.
> git commit -m "initial commit"


# Github ile remote repository oluşturmak.

- [Github](https://github.com/) 'ın ana sayfasından eğer üyeliğimiz yok ise "signup" ile kayıt oluyoruz. Kayıt formunu doldurup hızlıca üye olabilirsiniz.
- 
- Github'a üye olduktan sonra, sağ üstte **+** simgesine basarak **"new repository"** ye giriyoruz.
![New Repository](https://i.ibb.co/k58z6hQ/github-newrepository.jpg)
- Açılan sayfadan, projemizin ismini ve açıklamalarını giriyoruz. Hali hazırda olan bir projenizi ekleyecekseniz zaten içerisinde mevcut **readme** ve **gitignore** dosyaları olacağı için burada oluşturmak zorunda değilsiniz. Projeniz ile birlikte de oluşturabilirsiniz.
![enter image description here](https://i.ibb.co/PzttCpz/github-repository2.jpg)

- Yukarıda oluşturduğumuz **local repository**'i şimdi buradaki komutlar ile **remote repository**'e göndereceğiz.

![enter image description here](https://i.ibb.co/PZSH1QW/adding-remote-repository.jpg) 

- Görselde ikinci kısımdaki
> git remote add origin https://github.com/Katjulidis/my-laravel-project.git

komut satırını çalıştırıyoruz. Böylece localde commitlediğimiz repository'i remote olarak stage'e eklemiş oluyoruz. 

> git branch -M main

burada main yerine başka bir isim de verebilirsiniz. Ancak genel olarak ana branch için "main" ya da "master" isimlendirilmeleri yapılır.
> git push -u origin main

komutu ile local repository, remote repository'e kopyalanmış olur.

# Github hesabına ssh key eklenmesi

SSH key, güvenli parola doğrulanmasını sağlamak için kullanılan anahtardır.*[ssh key nedir?](https://www.cenuta.com/blog/ssh-key-nedir-ssh-key-anahtar-olusturma-islemi/)
- İlk başta kurulumunu yaptığımız Hyper terminal ile git bash komutlarına ulaşabiliriz
- Anahtar oluşturmaya başlamak için, aşağıdaki koda kendi github hesabınıza ait mail adresini ekleyerek terminale yazıyoruz.
> ssh-keygen -t ed25519 -C "your_email@example.com"
- "Enter a file in which to save the key" kısmını direk enter tuşuna basarak geçebilirsiniz, key'İ default olarak belirlediği directory'e kaydedicektir.
- "Enter passphrase" kısmında, SSH anahtarlarınızı her kullandığınızda parolanızı yeniden girmek zorunda kalmamak için bir kimlik doğrulama aracısı yapılandırabilirsiniz. (**passphrase yazarken terminalde yazdığınız harfler/rakamlar gözükmeyecektir, phassphrase'inizi iki kere girmenizi isteyeceği için tek seferde yazıp enter ile ilerleyerek sorunsuz geçebilirsiniz bu kısmı**) [Daha detaylı bilgi için](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases)
![SSH Key oluşturma](https://i.ibb.co/PMyqXkY/ssh.jpg)
- işlem tamamlandığında yukarıdaki gibi bir ekranla karşılaşmanız gerekiyor.

- Github'da SSH key sekmesine aşağıdaki gibi ulaşabilirsiniz.
![enter image description here](https://i.ibb.co/yP0pTSw/github-ssh.jpg)

- New SSH Key'e girdiğinizde aşağıdaki gibi bir ekran gelecek. En soldaki gibi .ssh klasörünün içerisindeki, sonu .pub ile biten dosyayı notepad ile açıp, içeriğini kopyalayın ve github'daki ilgili alana yapıştırıp "Add SSH key" ile keyinizi kayıt edin 🎉
![enter image description here](https://i.ibb.co/vZcBXGs/Inkedgithub-ssh2-LI.jpg)

# Laragon Kurulumu

- [Laragon](https://laragon.org/download/) aynı xampp ve wamp gibi, localhost geliştirme ortamını sağlayan programdır. 
- **git, phpmyadmin, Node.js/MongoDB, Python/Django/Flask/Postgres, Ruby, Java, Go** için geliştirme ortamlarını destekler. 

-Kurulum yaptıktan sonra sol alttaki **start all** ile mevcut yüklü programları çalıştırır.
![enter image description here](https://i.ibb.co/j8tjqJb/laragon.jpg)

- İster laragon üzerinde her hangi bir yere sağ tıklayıp, ister windows simgelerinin olduğu yerden logosuna sağ tıklayarak,  **Tool > Quick Add** ile kolayca istediğiniz ortamı ekleyebilirsiniz.
![enter image description here](https://i.ibb.co/dtpzNgQ/add-tool-laragon.jpg)

- Geliştirme yapacağınız klasörleri **Laragon > www** klasörünün içine eklemelisiniz. 
- Laragon'u **start** ile başlattığınızdan emin olduktan sonra adres satırına **localhost/proje-klasör-adı** yazdığınızda çalışıyor olacaktır. 
- Henüz bir proje eklemediyseniz, laragonun test için eklediği **index.php** dosyası mevcut, adres satırına **localhost** yazdığınızda çalışıyor olduğunu göreceksiniz.
![enter image description here](https://i.ibb.co/6PG5FHG/www-doc.jpg)

# Composer Kurulumu
- PHP'nin bağımlılık ve paket yöneticisi olan Composer kurulumu için [buradan](https://getcomposer.org/doc/00-intro.md#installation-windows) **[Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe).** 'yi indirip hızlıca kurulum yapabilirsiniz.
- Laragonun terminalini açıp **composer --version** ile composer sürümünüzü kontrol edebilirsiniz.
- Bağımlılıkları yüklemek için
> composer require paket_adi

- Paket kurulumu yapıldıktan sonra vendor klasörü içerisinde **composer.json** isimli dosyada kurduğunuz paketleri görebilirsiniz.
- Hali hazırda mevcut **composer.json** dosyanız varsa, içerisindeki paketlerin kurulması için terminale aşağıdaki komutu girmeniz gerekiyor.
> composer install 
- mevcut paketleri güncellemek için
> composer update

**Önemli Not**: Windows üzerinde composer indirilirken, kurulum yapıldıktan sonra terminale aşağıdaki komut girilerek, windowsta olmayan php paketleri görmezden gelmesini sağlayarak, çıkacak hataların önüne geçmiş olursunuz.
> composer install --ignore-platform-reqs

# Npm Kurulumu
- [Npm](https://docs.npmjs.com/) uygulamanızda size kolaylık sağlayacak 3.parti yazılımları yüklemeyi ve bağımlılıkları yönetmeyi sağlayan paket yöneticisidir. 
- Npm  `package.json` dosyası ile projede kullanılan tüm paket ve bağımlılıkları barındırır. 
- Npm kurulumu için Node.js kurulması gerekiyor, [node.js'in](https://nodejs.org/en/download/) sitesinden indirme işlemini yaptığınızda npm'de onunla birlikte kurulmuş olacak. Yüklemeden sonra terminale `node -v` yazdığınızda aşağıdaki gibi bir çıktı almanız gerekiyor. Tabii ki versiyonu yüklediğiniz güne göre değişiklik gösterebilir. Npm'i de aynı şekilde `npm -v` ile yüklendiğini kontrol edebilirsiniz.

   ![Node Version](https://i.ibb.co/TT9XbrY/nodeversion.jpg)
- `package.json` dosyasını oluşturmak için projenizin ana dizininde `npm init` komunu çalıştırmanız gerekiyor. Bu kısmı atlayıp daha sonra package.json üzerinden bu değişiklikleri yapmak istiyorsanız `npm init -y` ile bu kısmı geçebilirsiniz.
- İçerisinde bağımlılıkları ve paketleri olan `package.json` dosyası aşağıdaki gibi görünecektir
- ![enter image description here](https://i.ibb.co/CQ1gGS1/rnekpackagejson.jpg)
- Bu sayede projelerimizi github'a gönderirken `.gitignore` 'a **node_modules** klasörünü ekleriz ve büyük boyutlu bu paket dosyalarını göndermemiş oluruz. Projeyi bir başkası indirdiğinde ve ya bir başkasının projesini local'de çalıştırmak istediğinizde `npm init` komutu ile tüm tanımlı bağımlılıkları yükleyebilirsiniz.
- Bir paket global olarak yüklenmek istendiğinde
 `npm install <paket adı> -g --save-dev` komutu kullanılır. 
 - Projeye özel olarak yüklenmekk istendiğinde sadece 
 `npm install <paket adı> --save-dev` yazılması yeterlidir