SORU
13 Aralık 2012, PERŞEMBE


Tahrik veritabanı ayarlarını Laravel ortamında?

Laravel çerçeve üzerinde hareket ediyorum, ama veritabanı ayarları ile sorun yaşıyorsanız, ben

Özellikle, benim ortamlar kurulum var, ve application.php config dosyası için iyi, ancak yapılandırma dosyası hiçbir etkisi var gibi görünüyor database.php çalışıyorlar.

Bile var database.php config dosyasında benim ortamları klasörü asla dolu, koydum bir sürü geçersiz karakter (klavye püre) için dosya php atmak için bir hata, ama hiçbir zaman tutmadı.

Laravel çevre tabanlı veritabanı ayarlarını desteklemiyor? ya bu yanlış mı yapıyorum?

CEVAP
14 Aralık 2012, Cuma


Kesinlikle çevre ile veritabanı ayarları (ve herhangi bir diğer config ayar) ayarlayabilirsiniz.

Laravel 3 için Laravel Laravel 4 ve 5 aşağıya bakınız):

Öncelikle - paths.php $environments tanımlamak ve böyle bir şey için bunu ayarlamanız gerekir:

$environments = array(
  'development' => array('*.dev'),
  'production' => array('*.com'),
);

Laravelotomatik olarakset eğer bu değişkeni için bakın ve ilişkili yapılandırma kullanır.

Normalde config klasör, database.php auth.php gibi ayarları var

Şimdi sadece kullanmayı planladığınız Laravel_Env her (Gelişme) için yeni bir klasör oluşturun. Böyle bir klasör yapısı ile bitireceğiz;

/application
  /config
    /development
      database.php
    /production
      database.php
    application.php
    config.php
    database.php
    ...
    user_agents.php

Sadece her alt database.php ekledim dikkat edeceğiz. Laravel her zaman varsayılan yapılandırma ayarları ilk yük, ortamlar ayarı herhangi bir özel yapılandırmaları ile onları geçersiz kılar.

Son olarak, geliştirme/veritabanı dosyasında, bu gibi bir şey olurdu;

<?php
 return array(
'default' => 'mysql'
 );

p.s. Sadece Laravel geçerli 3.2.12 üzerine inşa edilen - ve kesinlikle çalışır.

Bonus İpucu:Ayrıca otomatik olarak ortamı el ile her komut satırı eklemek zorunda kalmazsınız Esnaf için bir ortam ayarlayabilirsiniz! Bunu yapmak için:

  1. 'Hostname Esnaf. çalıştırdığınız' Bilmeniz Gerekenler Öğren - geçici olarak kök klasörünüzde artisan.php düzenlemek için, ve hat 2 var_dump(gethostname()); Ekle (yani yukarıda her şey).

  2. Komut satırından php artisan çalıştırın. Bir dizi adı ile dökümünü alır. Benim durumumda onun "TSE-Windows 7";

  3. artisan.php dosyaya değişiklikleri kaldırın

  4. Hostname ("TSE-Windows 7") ortamlar için. yani Ekle

Böyle bir şey ile bitirmek gerekir:

$environments = array(
  'development' => array('*.dev', 'TSE-Win7'),
  'production' => array('*.com'),
);

Esnaf şimdi geliştirme ortamı kullanarak çalışır. Eğer canlı bir sunucu yeniden çalıştırmak için ana bilgisayar adı almak için aşağıdaki adımları dağıtırsanız() sunucusu, sunucu için belirli bir esnaf config yapılandırabilirsiniz!

4: İçin Laravel

Varsayılan ortam daima production. Ama seninstart.phpek ortamlar tanımlayabilirsiniz dosya.

 $env = $app->detectEnvironment(array(
   'local' => array('your-machine-name'),
));

Linux ve Mac hostname tip terminal hostname belirleyebilir - bilgisayarınızın adı çıktı. Windows routes.php dosyanın başında dd(gethostname()); tak - ve Web sitesini bir kez çalıştırın - bilgisayarınızın geçerli hostname gösterir.

Uygulamanızda bir değişken olarak mevcut ortam sunmak için- bu YÜZDEN cevabı buradan okuyabilirsiniz. Laravel 4: how can I get the environment value?

Laravel 5 İçin:

Tek bir yapılandırma dosyası varsa, kök dizininizde .env denir. Watch this laracast, config tam olarak açıkladı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010