2014-09-26 17 views
7

लार्वाले में परिभाषित स्थिरांक नहीं है, इसलिए कोई निरंतर फ़ाइल परिभाषित नहीं है, इसलिए मैंने आगे बढ़कर स्थिरांक के उपयोग को लागू करने के लिए एक रास्ता खोजा। नीचे दी गई विधि वह है जिसे मैंने एक साथ रखा है:लार्वेल

// app/config/constants.php 
return['CONSTANT_NAME' => 'value']; 

// index.blade.php 
{{ Config::get('constants.CONSTANT_NAME') }} 

अब, मेरा प्रश्न है; क्या मेरे दृष्टिकोण में मेरे स्थिरांक को पुनः प्राप्त करने का एक क्लीनर तरीका है? कुछ ऐसा:

{{ Constant::get('CONSTANT_NAME') }} 

यह मेरा विचार अच्छा, छोटा और साफ रखने के लिए है।

इनपुट की सराहना करें!

उत्तर

8

एक बात आप कर सकते हैं अपने विचार share pieces of data across के लिए है:

View::share('my_constant', Config::get('constants.CONSTANT_NAME')); 

रखो कि आपके routes.php के शीर्ष पर और निरंतर तो के रूप में अपने सभी ब्लेड विचारों में सुलभ हो जाएगा:

{{ $my_constant }} 
+1

हा! यकीन नहीं है कि मैंने इस बारे में क्यों नहीं सोचा, खासकर जब से मैं लैरवेल की साझा कार्यक्षमता से परिचित हूं! – Marfat

4

Config कक्षा का उद्देश्य स्थिरांक की आवश्यकता को प्रतिस्थापित करना और समान भूमिका निभाता है।

app/config/constants.php कुंजी/मूल्य जोड़े की एक सरणी लौटाएं, फिर उन्हें एक्सेस करने के लिए Config::get('constants.key') का उपयोग करें।

आप क़यास एक Constant वर्ग एक शॉर्टकट के रूप में एक get समारोह है कि बना सकते हैं:

class Constant { 
    public function get($key) { 
    return Config::get('constants.' . $key); 
    } 
} 

लेकिन मानक Laravel से निपटने का उपयोग कर अपने कोड के साथ खुद को परिचित करने के लिए कोशिश कर रहा है अन्य Laravel डेवलपर्स के लिए अच्छा होने की संभावना है।

1

v5 में आप @msturdy सुझावों को छोड़कर कर सकते हैं सिवाय इसके कि आप अपने पर्यावरण के लिए .env फ़ाइल में या उत्पादन में वास्तविक $ _ENVIRONMENT चर के रूप में उत्पादन को स्थिर रखते हैं।

उदाहरण .env प्रविष्टि:

CONSTANT=value 

फिर तो जैसे फोन:

View::share('bladeConstant', env('CONSTANT')); 

फिर साथ इसे लोड:

{{ bladeConstant }} 
+1

.env उत्पादन वातावरण में उपयोग के लिए अनुशंसित नहीं है (https://github.com/vlucas/phpdotenv#usage-notes), यह अप्रत्याशित रूप से व्यवहार कर सकता है (और इसी कारण से मैं कहूंगा कि विकास में भी उपयोगी नहीं है !)। – toby1kenobi

+0

सच है, हालांकि .env फ़ाइल का उपयोग करने के बजाय पर्यावरण चर भी आपके सर्वर पर सेट किया जा सकता है। और उपर्युक्त शेष वही रहता है। मैंने इसे बेहतर ढंग से प्रतिबिंबित करने के लिए अपना उत्तर अपडेट कर लिया है। –