2016-04-05 26 views
1

Bazı işlevlere (bazı uzantılar için çok-işlevli dolgular) sahip bir dosyam var.Symfony - özel genel işlevler yükle

Bu dosyayı nereye koyacağınız soru (şimdi "/ src/AppBundle" dizininde) ve Symfony'de nasıl yükleneceği sorulur. Belki bazı en iyi uygulama ya da bir şey.

Dosya xmaple:

<?php 

// functions.php 

define('CONSTANT_NAME', 'constant_value'); 

function doSomething() 
{ 
} 

Güncelleme: ayrıca bazı fonksiyonlar sadece "dev" bir ortamda (a ayrılmış dosyada) yüklenmelidir. Belki de app_dev.php dosyasına "include_once" ekleyin?

cevap

2

/src klasörüne koyabilirsiniz, belki de /src/functions.php - tercihlerinize göre karar verebilirsiniz. Yüklemek için composer.json öğünüzü değiştirebilir ve files öğelerini autoload yapılandırmanıza ekleyebilir, ardından composer update'u çalıştırabilirsiniz.

"autoload": { 
    "files": ["src/functions.php"] 
} 

Böylece functions.php Her istek için gereklidir.

+0

Teşekkür ederiz. Bu işlevlerin yalnızca "dev" ortamı için gerekli olduğu durumlar için bir çözüm önerebilir misiniz? "Web/app_dev.php" veya "daha" akıllı "bir çözümde" include_once "yazınız mı? – Alex

+0

"Web/app_dev.php" nin yeterince iyi olduğunu düşünüyorum - 'gerektirir (__ DIR __.'/../src/yourfile.php '); - Ayrıca bunu ['app/AppKernel'e de ekleyebilirsiniz. .php'] (https://github.com/symfony/symfony-standard/blob/master/app/AppKernel.php#L21), ancak yeniden kullanılabilir bir çözüm istiyorsanız, sadece bir tercih – Federkun

+0

@alex Ayrıca, sadece 'dev' env'de etkinleştirmek için bir demet oluşturun ve dosyalarınızı' Bundle' sınıfınıza ekleyin, örnek: 'class MyBundle Bundle'ı genişletir {public function boot() {// buraya ekleyin}}' – Federkun