जब मैंने सवाल पूछा तो मैं बहुत नींद में था, इसलिए इसके लिए खेद है, वैसे भी चीजों को स्पष्ट करने के लिए मैंने 2 घंटे के लिए सवाल तैयार किया।व्यू, टेम्पलेट और कंट्रोलर और मॉडल शुरू करना वैकल्पिक है
मैं अपने कोड को व्यवस्थित करने के कोशिश कर रहा हूँ और व्यवस्थित करने के लिए यह mvc'ish (MVC की तरह), मैं अगर मैं सभी सिद्धांतों का पालन कर सकते हैं पता नहीं है फैसला किया, लेकिन मैं कम से कम करीब बनना चाहता था उस से।
मेरे आवेदन में एक फ्रंट-कंट्रोलर है (अगर मेरी परिभाषा सही है तो मुझे पता है), ताकि मेरे आवेदन के सभी http-request मेरे बिंदु की स्थिति में index.php
मेरे मामले में गुजर रहे हों ।
यह कहकर कि मैंने इसे इस तरह स्थापित किया है, आप कल्पना कर सकते हैं कि मैंने .htaccess
का उपयोग सभी अनुरोधों को index.php
पर निर्देशित करने के लिए किया था।
मैंने url
विस्फोट किया और इस तरह से एक सरणी बनाई, $url[]
ऐसा ही।
$file = $controller_path . $page . '_controller.php';
if (file_exists($file)) {
require $file;
$class_name = ucfirst($page) . '_controller';
$target = new $class_name();
}
भी मैं इसे एक कंटेनर, 'डेकोरेटर पैटर्न' में लपेट: तो जब भी मैं इस http://localhost/app/pagename
की तरह मेरे ऐप्स को एक्सेस यह एक नियंत्रक (pagename_controller
)
मैं इसे इस तरह से किया था तक पहुँचने हो जाएगा , भविष्य के उपयोग के लिए, सत्यापन शायद। इस तरह:
$controller = new Wrap($target);
$controller->index();
अगर $controller
चर नाम के उपयोग के लिए उपयुक्त है तो कृपया मुझे माफ कर दो, जब यह सब गलत है मैं नहीं जानता।
मैं थोड़े लगता है कि मैं सेटअप इस तरह अपने आवेदन कर सकते हैं:
उपयोगकर्ता, कैसे एक अनुरोध भेजता है? अनुप्रयोग का उपयोग भी तरह से वह/वह एक http अनुरोध द्वारा भेजी गई, कि आवेदन
की प्रारंभिक अवस्था से लोड होगा तुम मेरे वांछित आवेदन संरचना के चित्र में देख सकते हैं, मैं केवल पहला भाग करने में सक्षम था जो एक ही प्रविष्टि (index.php
)
पर अनुरोध को निर्देशित करने में सक्षम था अब समस्या के आवेदन के अन्य हिस्सों की शुरुआत है।
इस पल के रूप में, मेरे पास 3 फाइलें हैं जिन्हें मैं सेटअप करना चाहता हूं, लेकिन मैं इस पर उलझन में हूं।
index_controller
, index_view
, Template
class Index_controller {
private $model;
private $view;
public function __construct(){
// optional model -> $this->model = 'index'
$this->view = 'index' //
}
public function index(){
$this->load->view($this->view)
}
}
class Index_view {
private $model;
private $template;
public function __construct(Model $model = null){
$this->template = new Template('default');
}
public function view() {
$this->template->assign('css', 'default_css'); // don't know if this is efficient
// or $this->template->assign('header', 'default_header');
// or $this->template->assign('sidebar', 'default_sidebar');
// or $this->template->assign('footer', 'default_footer');
// or any other things I want to use in the template
}
}
class Template {
public $data = array();
private $tmpl;
public function __construct($template) {
$this->tmpl = $template . '_tmpl.php';
}
public function assign($name, $value){
$this->data[$name] = $value;
}
// public function output
// function that will explode the data array and render it out as a webpage
// I'll create templates and
}
कि हाथ में साथ
, मैं अब पता है कि कैसे मैं उन चीजों को एक साथ लिंक करना चाहती। फिलहाल मेरे पास system
फ़ोल्डर है जिसमें कक्षाएं हो सकती हैं, और मैंने उस फ़ोल्डर के लिए एक ऑटोलोडर सेट किया है।
मैं Controller
वर्ग और View
कक्षा बनाने की सोच रहा हूं जो आरेख में चित्रित एक्शन फैक्ट्री और व्यूफैक्टरी के रूप में कार्य करता है, हालांकि मुझे पता है कि ये उनकी जिम्मेदारियां नहीं हैं।
मैं इस की सोच रहा हूँ:
class Controller {
protected $load;
public function __construct() {
$this->load = new View();
}
}
class View {
public function __construct() {
// some things i don't know
}
public function view() {
// some things i don't know
}
}
क्या अपने सुझाव और मेरे सेटअप में टिप्पणी कर रहे हैं। मैं ट्रायड कैसे शुरू कर सकता हूं?
यह स्पष्ट नहीं है कि आपका वास्तविक प्रश्न क्या है।क्या आप विशिष्ट प्रश्नों के एक सेट से पूछने के लिए अपनी पोस्ट अपडेट कर सकते हैं? – Charles
संपादित, मैंने इसे बहुत स्पष्ट बना दिया और मैंने इसे भी आजमाया –
@JoeySalacHipolito क्या आप '$ पृष्ठ' को मान्य कर रहे हैं? यदि नहीं, तो आपके पास स्थानीय फ़ाइल समावेशन भेद्यता है, 'file_exists()' इसे रोक नहीं पाएगी। – MrCode