स्थापना प्रोफ़ाइल के दौरान सेटिंग्स को कैसे अनुकूलित करें


9

मैं अपनी वर्तमान कंपनी के आंतरिक प्रोजेक्ट के लिए एक इंस्टॉलेशन प्रोफ़ाइल बना रहा हूं।

स्थापना प्रक्रिया के दौरान init(), कस्टम मॉड्यूल में से एक के दौरान क्रैश हो जाता है , क्योंकि यह परिभाषित एक वैश्विक चर का उपयोग करने की कोशिश करता है settings.php(यह मॉड्यूल के वर्तमान डिफ़ॉल्ट व्यवहार है)

का उपयोग करते हुए system_form_install_settings_form_alter()मैं सेटिंग्स रूप बदल गया है, उपयोगकर्ता के इनपुट के लिए एक इनपुट पाठ फ़ील्ड जोड़कर, और पर मूल्य में जोड़ा जाता है प्रस्तुत settings.phpहै, लेकिन settings.phpइससे पहले कि प्रोफ़ाइल स्थापना शुरू होता है rewrited है।

settings.phpस्थापना प्रक्रिया द्वारा सफाई को रोकने का कोई तरीका है ?


1
हो सकता है कि दुर्घटनाग्रस्त होने वाले मॉड्यूल को पैच करना आसान हो, और उस परियोजना के लिए समस्या कतार में अपना परिवर्तन सबमिट करें। आपके परिवर्तन को स्वीकार करने से पहले, आप अपनी स्थापना प्रोफ़ाइल के लिए मेकफाइल में अपने पैच का संदर्भ जोड़ सकते हैं।
greg_1_anderson

नमस्कार, आपके जवाब के लिए धन्यवाद। यह एक कस्टम आंतरिक मॉड्यूल है (एक कॉन्ट्रिब्यूट नहीं), लेकिन हां, मैंने इसे पैच किया और समस्या हल हो गई।
पाउलो गोम्स

क्या यह कुछ ऐसा है जहाँ settings.local.php फ़ाइल का उपयोग करना है जो settings.php फ़ाइल को ओवरराइड करता है वह भी मदद कर सकता है?
बेथ

यह लिंक मेरे लिए पिछले
next.com.au/blog/…

जवाबों:


3

आपको इसका उपयोग करना आसान लग सकता है settings.common.php

अक्सर टीम प्रोजेक्ट्स के दौरान, हमारे पास settings.phpdb क्रेडेंशियल्स आदि के साथ स्थानीय होते हैं .. और settings.common.phpस्थापित और परिनियोजन वातावरण के लिए सामान्य सेटिंग्स के साथ।

आप settings.common.phpएक शामिल / आवश्यकता रेखा के साथ जोड़ सकते हैंsettings.php

require 'settings.common.php'; // same directory, e.g sites/default/settings.common.php

और फिर इसे इंस्टॉल के दौरान आवश्यकतानुसार लिखें।


3

मेरा जवाब Apache का उपयोग करने वाले सर्वर पर निर्भर करता है, लेकिन मुझे लगता है कि कोई भी अन्य वेब सर्वर भी इसे पूरा कर सकता है।

अपने वर्चुअलहोस्ट कॉन्फ़िगरेशन में, आप अपने पर्यावरण के लिए सभी चर सेट कर सकते हैं:

SetEnv DBUSER datbase_user
SetEnv DBPASS database_pass
SetEnv DBNAME database_name
SetEnv DBHOST localhost

और आपकी सेटिंग में। Php फ़ाइल:

$databases = array (
   'default' => 
   array (
     'default' => 
     array (
       'database' => $_SERVER["DBNAME"],
       'username' => $_SERVER["DBUSER"],
       'password' => $_SERVER["DBPASS"],
       'host' => $_SERVER["DBHOST"],
       'port' => '',
       'driver' => 'mysql',
       'prefix' => '',
    ),
   ),
 );

आप इस तरह से किसी भी अन्य चर सेट कर सकते हैं।

यदि आप $ _SERVER सरणी के गलत हाथों में आने से चिंतित हैं, तो आप सेटिंग्स के निचले भाग के सभी महत्वपूर्ण चर को खोल सकते हैं।

unset($_SERVER["DBUSER"]);
unset($_SERVER["DBPASS"]);
unset($_SERVER["DBNAME"]);
unset($_SERVER["DBHOST"]);

इस तरह से हम अपने देव वातावरण, मंचन और यहां तक ​​कि उत्पादन के बीच साइटों को स्थानांतरित करने के लिए अपने कार्यालय में ऐसा करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.