Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Öncelikle merhaba Web Geliştirmede PHP ve Laravel ile Backend odaklı bir buçuk yılımı doldurdum neredeyse ve bu noktada hep Laragon geliştirme ortamını kullandım oldukça basit kurulumu ve hızlı olma sebebiyle, ancak aklımda hâlâ geliştirme ortamı noktasında fazlasıyla belirsizlik vardı bu geliştirme ortamı işlerinden anlamıyorum ve sadece geliştirme kısmına odaklıyım.

Laragon, XAMPP gerçek bir ortamı ne kadar simüle edebiliyor gerçeğe en yakını mı ve siz değerli geliştiriciler ortam olarak hangi yazılımları kullanıyorsunuz merak ettim açıkçası Herd, Homestead, Sail veya daha farklı bir ortam?

Dün Docker kurmaya niyetlendim ancak bunu başaramadım bu noktada kullanan kişiler önerir mi (genellikle tek başıma geliştirme yapıyorum ve anladığım kadarıyla Docker takım halinde geliştirme odaklı) Windows'ta performansı nasıl ve tam anlamıyla sıfırdan nasıl kurulur?

    beratmasat Kullanabileceğiniz her şeyi daha önceden kullanmış biri olarak benim fikrim Docker kullanılması yönünde. Avantajlarını yazmayacağım çünkü artık AI var, uygun bir prompt ile size benim söyleyeceklerimi daha düzgün bir şekilde verecektir. Laravel'in de resmi Docker çözümü Sail olduğu için direkt işinizi görecektir. Ben Sail kullanıyorum.
    https://laravel.com/docs/12.x/sail

    Windows'da kullanımı ise; Windows NTFS dosya sistemi kullanır ama siz Docker ile büyük ihtimalle ext4 (Linux dosya sistemi) kullanacaksınız, o yüzden sürekli bir dosya sistemi dönüşümü olacak, bu da çok yavaş çalışmasına neden olacaktır. O yüzden Windows'un buna çözümü WSL (2); Linux için Windows Alt Sistemi. WSL ile Windows altında Linux çalıştırabiliyorsunuz (varsayılan distro Ubuntu). Bu sayede örneğin Windows altında Ubuntu çalışacak, Docker containerlar da bu Ubuntu içinde çalışacak ve böylece sürekli gerçekleşen ntfs <> ext4 dönüşümünden kurtulmuş olacaksınız.

    WSL kurulumu:
    https://learn.microsoft.com/en-us/windows/wsl/install

    Daha sonra Windows'a Docker for Windows kurup içinde WSL kullanılmasını sağlacaksınız:
    https://docs.docker.com/desktop/features/wsl/#turn-on-docker-desktop-wsl-2

    Projelerinizi Windows altındaki Ubuntu dosya sisteminde tutacaksınız. Terminal üzerinden Ubuntu dosya sistemine girip komutları da (sail artisan komutları vs) Ubuntu'nun terminalinde çalıştıracaksınız.

    Windows'daki terminal işlemlerinde cmd ya da PowerShell değil Windows Terminal kullanın:
    https://learn.microsoft.com/en-us/windows/terminal/install

    Son olarak, Sail ayarlarını uygulamanızın çalışacağı production ortamıan göre ayarlayın. Sunucuda PHP 8.3 ise Sail'de de aynısı olsun, veri tabanı sürümü, Redis vs hepsini aynı yapın. Böylece canlı ortamda hem sürpriz yaşamamış olursunuz hem de canlı ortamda çalışıyormuş gibi geliştirme yaparsınız.

      mgsmus Hocam yanıtınız için teşekkür ederim bakma fırsatım yok henüz anladığım kadarıyla WSL Powershell ile wsl yazarak erişebiliyoruz ve Distro'ya bir kullanıcı adı ve şifre tanımlıyoruz bu sisteme PHP kurulumu normal Ubuntuya kurulduğu gibi mi oluyor yada kurmama gerek var mı ben tam olarak bu noktayı kaçırıyorum? Kendi bilgisayarımdaki projeyi WSL'ye aktarmam mı gerekiyor yoksa projeyi terminal ile açıp wsl komutu ile Distroda açsam da oluyor mu kurulum noktasında sorun yok aslında var olan bir projeyi Docker'a nasıl taşıyacağım veya Docker ile yeni projeleri nasıl oluşturacağım?

        beratmasat

        • Gerekli WSL aşamalarını takip edip kurdunuz ve Ubuntu hazır (Bu tarihte 24.04.1 LTS).
        • Terminalden Ubuntu'ya giriş yaptınız. PHP (8.3) ve GIT Ubuntu ile birlikte gelir. İlk kurulumlar için Ubuntu içinde PHP ve GIT binarylerine ihtiyacınız olacak ama projeniz Docker içindeki PHP ile çalışacak.
        • Composer kurulu gelmez, onu siz kuracaksınız. Terminalde sırayla:
          php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
          php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
          php composer-setup.php
          php -r "unlink('composer-setup.php');"
          sudo mv composer.phar /usr/local/bin/composer
        • Daha sonra GIT ile projenizi home içinde istediğiniz yere (mesela ~/projects) clone alın (Evet, GIT kullanmanız gerekiyor):
          mkdir ~/projects
          cd ~/projects
          umask 022
          git clone git@github.com:username/my-project.git
        • Projenizde Sail yoksa Sail dokümanlarına bakın https://laravel.com/docs/12.x/sail
        • Gerekli ayarlamaları yaptıktan sonra proje klasörünüzde Sail'i ayağa kaldırdığınızda docker-compose.yml içinde belirttiğiniz ayarlara göre gerekli imajları çekip sizin için hazır hale getirecek ve uygulamanız ayağa kalkacak. Geriye sadece eğer yapılmadıysa env ve config ayarlarını yapmak kalıyor.
          ./vendor/bin/sail up

          mgsmus Ben mac kullanıcısıyım herd ün ücretsiz versioyonunu(pro versionda db yönetimi de var) kullanıyorum veri taba yönetimini db engine adında bir uygulama yükleyerek db yönetiminde versionları çok kolay şekilde ayarlayabiliyorum
          Yani yapılan işlemlere göre değişir ihtiyaç ama bana bu ikisi yetiyor çokça
          Herd'ün windows makinalar içinde desteği geldi ben herd-docker ikilisini size tavisye ederim
          Kurulum kolay
          Kullanım kolay
          Versionlar arası yönetim kolay
          Conf ayarlarında yapılan değişiklikleri yapmak çok kolay

            nuri60 Docker ile uğraşmak akıl kârı değil bunu anladım çok daha sonra bakılabilir linux'a uzak olduğum için ve açıkçası birazcık üşendiğim için (saatlerce uğraştım bir çok video izledim herkes farklı bir şey yapıyor) bıraktım 🙂

              mgsmus Hocam değerli yanıtınız için de teşekkür ederim ancak bir türlü başaramadım belki daha sonra şans verebilirim tam anlamıyla Laravel Sail for Dumbs gibi bir eğitim bulabilirsem tabii

              beratmasat Docker kurulumu basit aslında. Ama 0 proje de kurman lazım sonra toparlanmıyor 😃

              Windows ortamı için fikrim yok fakat mac ve linux ortamı için docker çok büyük nimet. Sail ile beraber gelen yazılımlar geliştirme sürecini çok kolaylaştırıyor.

              Selamlar tekrardan yerel geliştirme ortamını Docker'e geçirmeye çalışıp benim gibi yapamayan arkadaşlara hazır ben çözebilmişken nasıl yapılacağını anlatayım daha sonra bu noktada sorun yaşamasınlar:

              I. Adım WSL (Windows Subsystem for Linux) Kurulumu

              Windows üzerinde sanal bir makine aracılığı ile değil doğrudan bir Linux dağıtımı çalıştırmanızı sağlayan bir özellik bu tarz konulardan fazlasıyla uzak olduğum için yanlış bilgi kirliliği yapmak istemiyorum sadece sadede gelip Laravel projesini nasıl Docker üzerinde çalıştıracağınız anlatacağım:

              PowerShell veya @mgsmus hocamın da belirttiği gibi Windows Terminal üzerinden wsl --install komutuyla WSL özelliği hem aktif hale getiriliyor hem de varsayılan dağıtım olan Ubuntu Windows işletim sisteminiz içine yükleniyor.

              II. WSL Ayarlamaları

              Ubuntu için kullanıcı adı ve parolanızı tanımlayın ve ardından sudo apt update komutuyla paket listelerini güncelleyin.

              mgsmus Terminalden Ubuntu'ya giriş yaptınız. PHP (8.3) ve GIT Ubuntu ile birlikte gelir.

              Demiş ancak bende öyle olmadı belki Windows farkı veya dağıtım sürümü farkından olabilir yine de bize sadece PHP ve Composer bu noktada lazım olacak yeni bir proje oluşturmak için veya mevcut projenizi WSL'ye klonladıktan sonra Composer paketlerini indirmek için.

              Bu noktada Laravel Dokümantasyonundaki kodu aldım bu doğrudan PHP (8.4), Composer ve Laravel Installer'ı yüklüyor. Sürümün bir önemi yok.

              mgsmus İlk kurulumlar için Ubuntu içinde PHP ve GIT binarylerine ihtiyacınız olacak ama projeniz Docker içindeki PHP ile çalışacak.

              Hocamın dediği gibi sadece ilk kurulum için önemli daha sonra Sail'in oluşturduğu docker-compose.yml içinde hangi PHP sürümünü kullanmak isterseniz belirtebilirsiniz.

              /bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"

              Bu noktada ya mevcut reponuzu yada tamamıyla sıfır bir proje oluşturarak devam edebilirsiniz ben yine de ekstra olarak repo klonlamadan bahsedeyim bunun için bir SSH anahtarı oluşturun ve Github hesabınıza ekleyin:

              ssh-keygen -t rsa -b 4096 -C "email@example.com"

              Çok detaya girmeyeceğim oluşan SSH anahtarını Github'a tanımladıktan sonra git komutuyla projenizi bir dizin içine veya doğrudan home* dizinine klonlayabilirsiniz.

              III. Docker İndirmek

              Dockeri bilgisayarınıza indirin ve daha sonra ayarlardan sırasıyla:

              Settings > General > Use the WSL 2 based engine
              Settings > Resources > WSL Integration > (Dağıtımınız)

              Aktif edin ve Docker Engine'yi yeniden başlatın.

              IV. Adım Projeyi Visual Studio Code İle Açma/Düzenleme

              Visual Studio Code'a girin ve Eklentilere WSL aratarak WSL eklentisini indirin, Sol altta "><" sembolüne basarak Connect to WSL seçeneğine tıklayın ve Open Folder ile proje dizinini bulun. Bu noktadan sonrasında size artık Laravel Sail dokümanı eşlik edecek.

              Not: Güncel Laravel projelerinde Sail doğrudan kurulu gelmektedir.
              Ek Bilgi: Proxy gibi araçlar (DPI) kullanıyorsanız sail up komutu hata verebilir 🙂