সমস্যা
আমি একাধিক ব্যক্তি দলের পরিবেশে কিছু ওয়ার্ডপ্রেস বিকাশ শুরু করতে চলেছি। (এক সাথে একই কোডবেসে কাজ করা 3 বা ততোধিক লোক, প্রতিটি স্থানীয়ভাবে বিকাশ করে)
অন্যান্য সিএমএসের সাথে আমরা কাজ করেছি, সবাই একই ডাটাবেসে তাদের ইনস্টলগুলি ইঙ্গিত করেছে এবং যেভাবে সিএমএস / ডাটাবেস কাজ করেছে, তার অর্থ আমরা সকলেই আমাদের ইনস্টলগুলিতে (ভিন্ন ভিন্ন ইউআরএলগুলিতে অবস্থিত) একই কন্টেন্ট সরবরাহ করতে পারি অনেক ইস্যু ছাড়াই একই ডাটাবেস (মাঝে মাঝে আপলোড ফোল্ডারগুলি সিঙ্ক করা ব্যতীত)
আমার প্রশ্ন, ওয়ার্ডপ্রেস সহ, আমাদের কী একই একই পদ্ধতির ব্যবহার থেকে বাধা দেয় এবং আমরা কীভাবে এই সমস্যাগুলি সমাধান করতে পারি?
যেমন। ওয়ার্ডপ্রেসের তিনটি অনুলিপি একই ডাটাবেসের বাইরে চলেছে।
http: //dev.local/developer-a/
http: //dev.local/developer-b/
http: //dev.local/developer-c/
ইত্যাদি
আমি আশা করি এটি লঞ্চের আগে কেবলমাত্র একটি পরিবেশের পরিবেশে থাকবে তা বলার অপেক্ষা রাখে না।
প্রধান বিষয়
- ডাটাবেসের মধ্যে নির্দিষ্ট url- এর উল্লেখ (
wp_posts
এবংwp_options
টেবিলগুলি মনে হয়) - যদি কোনও ব্যক্তি একটি প্লাগইন ইনস্টল করেন, অন্য ইনস্টলগুলিতে এটি থাকবে না এবং এটি ডেটাবেজে সম্মতিযুক্ত সমস্যা তৈরি করবে
- আপলোড ফোল্ডারগুলি সিঙ্কে রাখছে
বর্তমান সমাধান
বর্তমানে আমার কাছে প্রথম সমস্যার সমাধানের সূচনা রয়েছে। আমি আমার মি-প্লাগিন ফোল্ডারে একটি ফাইলে নিম্নলিখিতটি রাখি।
কোডটি ইউএসএলের কোনও উদাহরণকে একটি অনন্য টোকেন দিয়ে প্রতিস্থাপন করে ডাটাবেসের বাইরে যাওয়ার সাথে সাথে পোস্ট সামগ্রীটি ফিল্টার করে।
<?php
define('PORTABILITY_TOKEN', '{_portable_}');
function portability_remove_home($content)
{
$content = str_replace(get_option('home'), PORTABILITY_TOKEN, $content);
return $content;
}
add_filter('content_save_pre', 'portability_remove_home');
function portability_add_home($content)
{
$content = str_replace(PORTABILITY_TOKEN, get_option('home'), $content);
return $content;
}
add_filter('the_content', 'portability_add_home');
add_filter('the_editor_content', 'portability_add_home');
ওয়ার্ডপ্রেস যেখানে তাদের কাজ করার জন্য ইনস্টল করা হয়েছে সেই পরিবেশটি ব্যবহার করে আমি পিএইচপি এর মাধ্যমে হোম এবং সাইটুরল বিকল্পগুলি সেট করেছি। (আবার এটি কেবল উন্নয়নের জন্য) এর অর্থ হ'ল প্রতিটি স্বতন্ত্র ইনস্টল করার জন্য ওয়ার্ডপ্রেস পোস্ট সামগ্রীটি ক্লায়েন্টের কাছে পৌঁছানোর সাথে সাথে সেই url এ চলছে বলে মনে হবে।
<?php
if (!defined('WP_HOME'))
{
// define WP_HOME (aka url of install) based on environment.
// IF THIS ISN'T WORKING, DEFINE IT EARLIER.
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . str_replace($_SERVER['DOCUMENT_ROOT'], '', dirname(__FILE__) ) );
}
if (!defined('WP_SITEURL'))
{
// Assumes WordPress is in a separate directory called 'wp', relative to WP_HOME.
// IF IT'S DIFFERENT, DEFINE IT EARLIER.
define('WP_SITEURL', WP_HOME . '/wp');
}
দ্বিতীয় এবং তৃতীয় সমস্যাগুলি উপযুক্ত সিমলিংকের সাথে সমাধানযোগ্য বলে মনে হচ্ছে (সমস্ত একই মেশিনে বিকাশ করছে)
আসল প্রশ্ন
আমি কি যাইহোক পৃথকীকরণের ইউআরএলগুলি পরিচালনা করতে উন্নতি করতে পারি? আমি কি কিছু মিস করেছি যা ইউআরএলটি ডাটাবেসে হার্ডকোড করে দেবে?
আমার কোনও সিটিমিংয়ের সাথে সচেতন হওয়া উচিত?
অন্য কোন ইস্যু কি কেউ ভাবতে পারেন?
আমি বুঝতে পারি এই প্রশ্নগুলি খুব নির্দিষ্ট, যদি কিছু অস্পষ্ট থাকে তবে এ সম্পর্কে মন্তব্য করুন এবং আমি সংশোধন / স্পষ্ট করব।
ধন্যবাদ।