Laravel ile çalışmaya yeni başladım. Laravel 4'ü temel çerçeve olarak kullanarak birkaç yıl önce yaptığım tüm sistemi yeniden yazmam gerekiyor. Eski sistemimde, constant.php
bazı sabitlerin beyan edildiği bir dosyam ve globals.php
çok sayıda dizi kümesi içeren bir dosyam vardı (örneğin, kategori durumları, olay türleri, diller vb.). Bunu yaparak şöyle bir şey kullanabilirim:
foreach ( $langs as $code => $domain ) {
// Some stuff
}
uygulamamın herhangi bir yerinde.
Sorum şu, bu bilgiyi sözde "laravel yolu" ile nasıl saklayabilirim. Bu bilgiyi saklamak için bir tür nesne kullanmayı denedim, bunu bir hizmet olarak ayarladım ve onun için bir cephe oluşturdum:
app / libraries / Project / Constants.php
namespace PJ;
class Constants {
public static $langs = [
'es' => 'www.domain.es',
'en' => 'www.domain.us',
'uk' => 'www.domain.uk',
'br' => 'www.domain.br',
'it' => 'www.domain.it',
'de' => 'www.domain.de',
'fr' => 'www.domain.fr'
];
}
app / libraries / Project / ConstantsServiceProvider.php
namespace PJ;
use Illuminate\Support\ServiceProvider;
class ConstantsServiceProvider extends ServiceProvider {
public function register() {
$this->app->singleton('PJConstants', function() {
return new Constants;
});
}
}
app / libraries / Proje / SabitlerFacade.php
namespace PJ;
use Illuminate\Support\Facades\Facade;
class ConstantsFacade extends Facade {
protected static function getFacadeAccessor() {
return 'PJConstants';
}
}
composer.json
"psr-4": {
"PJ\\": "app/libraries/Project"
},
ve bu mülke olarak erişiyorum PJ\Constants::$langs
.
Bu işe yarıyor, ancak bunu yapmanın en verimli veya doğru yolu olduğundan şüpheliyim. Demek istediğim, bütün bir Servis Sağlayıcı, cepheler ve benzeri şeyler oluşturarak bir değişkeni "yaymanın" doğru yolu bu mu? Veya bu verileri nereye koymalıyım?
Herhangi bir tavsiye için teşekkürler.
DÜZENLE # 01
Tüm denetleyicilere ve görünümlere iletmek istediğim veriler, yazımın başındaki örnekte olduğu gibi doğrudan kodda ayarlanabilir, ancak aynı zamanda bir veritabanından dinamik olarak da oluşturulabilir. Bu veriler bir kategori listesi olabilir. Bir gezinme çubuğu oluşturmak için tüm görünümlerde onlara ihtiyacım var, ancak aynı zamanda bazı yönlendirme kalıplarını (gibi /category/subcategory/product
) tanımlamam ve ayrıca birkaç denetleyicide bazı bilgileri ayrıştırmam için (X ürününü içeren kategoriden bilgi alma gibi ) onlara ihtiyacım var .
Dizim şöyle bir şey:
$categories = [
1 => ['name' => 'General', 'parent' => 0, 'description' => 'Lorem ipsum...'],
2 => ['name' => 'Nature', 'parent' => 0, 'description' => 'Lorem ipsum...'],
3 => ['name' => 'World', 'parent' => 0, 'description' => 'Lorem ipsum...'],
4 => ['name' => 'Animals', 'parent' => 2, 'description' => 'Lorem ipsum...']
]
Örnek olarak. Dizin, kategorinin kimliğidir ve Değer, kategoriyle ilişkili bilgidir.
Tüm Denetleyiciler ve Görünümlerde de mevcut olan bu diziye ihtiyacım var.
Öyleyse, bunu bir Yapılandırma değişkeni olarak kaydetmeli miyim? Bu verileri başka nasıl saklayabilirim; en iyi ve anlamsal olarak doğru yol ne olurdu?