Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Fish Shell ve Laravel Valet: Otomatik PHP Versiyonları ve Composer v1/v2 Değişimi
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Fish Shell ve Laravel Valet: Otomatik PHP Versiyonları ve Composer v1/v2 Değişimi

Yazılım

Fish Shell ve Laravel Valet: Otomatik PHP Versiyonları ve Composer v1/v2 Değişimi

teknomers
Son güncelleme: 22 Nisan 2026 02:31
teknomers
Paylaş
Paylaş

Orijinal yayın recca0120.github.io‘da yapılmıştır.

Laravel Valet ile birden fazla PHP sürümünü yönetmek oldukça faydalıdır; ancak php -v komutunu girdiğinizde, Valet’in o dizin için ayarladığı sürüm yerine global sürümü alıyorsanız sorunlar başlar. Özellikle Composer v1’e ihtiyaç duyan eski projeler, globaldeki v2 ile uyumlu çalışmaz. Bunu çözmek için birkaç satır Fish yapılandırması yeterlidir. php, composer ve phpunit otomatik olarak Valet’i takip eder.



Sorun

Valet’in valet php komutu, mevcut dizin için yapılandırılan PHP sürümünü kullanır. Ancak doğrudan php yazdığınızda sistem genelindeki PHP sürümü kullanılır; bu da Valet ile tamamen ilgisizdir.

Composer için durum daha da kötü: bazı eski paketler Composer v2 ile uyumsuz olduğu için v1 ile kurulması gerekir. Tüm sisteminizdeki Composer’ı bir eski proje için düşüremezsiniz. Çözüm olarak, proje dizinine bir composer.phar (v1) yerleştirmeniz gerekir — fakat her seferinde php ./composer.phar yazmayı unutmamalısınız. Bu da rahatsız edici bir durumdur.



Fish Yapılandırması

Bu satırları ~/.config/fish/config.fish dosyasına ekleyin:

# php, Valet'in sürümünü kullanır, dizine göre otomatik geçiş yapar
alias php "valet php"

# phpunit Valet'in php sürümünü takip eder
alias phpunit "php vendor/bin/phpunit"

# composer: akıllı v1/v2 tespiti
function composer
    if [ -n "./composer.phar" ]
        # Projede composer.phar (v1) var — onu kullan, bellek sınırını kaldır
        COMPOSER_MEMORY_LIMIT=-1 valet php ./composer.phar $argv
    else
        # composer.phar yok — sistem valet composer (v2) kullan
        valet composer $argv
    end
end

Yapılandırmayı uygulamak için source ~/.config/fish/config.fish komutunu çalıştırın veya terminalinizi yeniden başlatın.



Her Satır Ne Yapıyor



alias php "valet php"

valet php komutu, mevcut dizinin .valetphprc dosyasındaki veya Valet’in dizine özel yapılandırmasındaki PHP sürümünü seçer. Bu alias ile php artisan, php -v ve diğer tüm komutlar otomatik olarak doğru sürümü kullanır — manuel geçiş yapmaya gerek kalmaz.



alias phpunit "php vendor/bin/phpunit"

PHPUnit bir PHP scriptidir, bu yüzden hangi PHP’nin çalıştırdığı önemlidir. Bu alias, phpunit’in php (şimdi valet php) ile çalışmasını sağlar, böylece projenin PHP sürümüyle eşleşir.



function composer

Bu fonksiyon, Composer v1/v2 arasındaki uyum sorununu çözer:

function composer
    if [ -n "./composer.phar" ]
        COMPOSER_MEMORY_LIMIT=-1 valet php ./composer.phar $argv
    else
        valet composer $argv
    end
end

[ -n "./composer.phar" ] ifadesi, mevcut dizinde composer.phar dosyasının bulunup bulunmadığını kontrol eder. Eğer varsa, onu (v1) kullanır; aksi takdirde valet composer (v2) ile devam eder.

COMPOSER_MEMORY_LIMIT=-1, bellek sınırlamasını kaldırır. Composer v1, karmaşık bağımlılık ağaçlarında kolayca bellek sınırına ulaşır. v2 ise çok daha verimlidir ve nadiren bu sınırı aşar.

$argv ifadesi, tüm argümanları geçirir, böylece composer install, composer require laravel/framework gibi komutlar normal şekilde çalışır.



Composer v1 için Eski Bir Projeyi Kurma

Composer v1 gerektiren bir projeye rastladığınızda, composer.phar dosyasını proje kök dizinine indirin:

# En son Composer v1'i indirin
curl -o composer.phar https://getcomposer.org/download/latest-1.x/composer.phar
chmod +x composer.phar

# Bunu commit yapmayın
echo "composer.phar" >> .gitignore

Bu noktadan sonra, o dizindeki composer install otomatik olarak v1’i kullanacaktır. composer.phar olmayan diğer projeler ise v2 kullanmaya devam edecektir. Aralarında hiçbir etkileşim yoktur.



Kurulumu Doğrulama

# php'nin Valet'i takip ettiğini kontrol edin
php -v
# Bu, mevcut dizin için yapılandırılmış PHP sürümünü göstermelidir

# composer fonksiyonunun aktif olduğunu kontrol edin
type composer
# Çıktı: composer bir fonksiyon, tanımı ...

# composer.phar olan bir dizinde
cd ~/Sites/legacy-project
composer --version
# Çıktı: Composer sürümü 1.x.x

# Normal bir dizinde
cd ~/Sites/modern-project
composer --version
# Çıktı: Composer sürümü 2.x.x



Özet

Temel fikir: geliştirme araçlarının PHP sürümünü Valet üzerinden otomatik olarak takip etmesine izin vermektir. php ve phpunit basit alias’lerdir. composer ise v1/v2 arasındaki uyum gereksinimi nedeniyle bir fonksiyon kullanmaktadır.

composer.phar dosyasını proje köküne yerleştirmek, o projenin v1’e ihtiyaç duyduğunu belirten bir işaret görevi görür. Ek yapılandırma dosyaları veya ortam değişkenlerine gerek kalmadan, zaten var olan bir dosya ile bu işlem yapılır.



Referanslar

Kaynak: Orijinal Makale

Contents
  • Sorun
  • Fish Yapılandırması
  • Her Satır Ne Yapıyor
    • alias php "valet php"
    • alias phpunit "php vendor/bin/phpunit"
    • function composer
  • Composer v1 için Eski Bir Projeyi Kurma
  • Kurulumu Doğrulama
  • Özet
  • Referanslar
Yakınlaştırma güncellemesi, daha verimli toplantılar için hızlı bir hack sağlar
Laravel Geliştiricilerini Çağırıyoruz — Temiz, Genişletilebilir Bir ERP (ve AI Ajanları) Oluşturalım
Freelancerlar için Sıfır Kayıt Gerektiren Fatura Oluşturucu Nasıl Geliştirdim
2026’da Güçlü Web Geliştirme İçin En İyi PHP Çerçeveleri
MonkeysLegion 2.0 Yayınlandı — Apex AI ve Daha Hızlı PHP Çalışma Zamanı ile Tanışın
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale SpaceX, Cursor ile çalışıyor; girişimi 60 milyar dolara alabilir.
Sonraki Makale Anthropic, bir şirketin Claude erişimini kapattı; 60 çalışan etkilendi

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Acil: Yeni Linux Pedit COW Açığıyla Kötü Amaçlı Erişim Tehlikesi!
Siber Güvenlik
Founder Summit için erken kayıt fiyatları bu gece sona eriyor
Genel
Ivanka Trump ve Jared Kushner’in Tatil Projesi, Arnavut Başbakanını Yıkabilir mi?
Genel
Philips Hue Akıllı Aydınlatmalarında Nadir İndirimler Var
Liste
AMD’nin 10. Yıl Dönümü Ryzen 7 5800X3D CPU’su Stokta — En Hızlı Oyun İşlemcisi Nereden Alınır?
Donanım
Kritik Acil: Yeni DirtyClone Açığı ile Kullanıcılar Root Erişimi Sağlıyor
Siber Güvenlik
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?