2010-08-13 10 views
6

मेरे पास एक नया जेडएफ 1.10 प्रोजेक्ट है (केवल डिफ़ॉल्ट मॉड्यूल - एकाधिक मॉड्यूल नहीं) और मुझे एप्लिकेशन/मॉडल निर्देशिका से उठाए जाने के लिए "मॉड्यूल_Model_" के साथ अपने मॉडल के क्लास नामों को उपसर्ग करना है।मैं ज़ेंड फ्रेमवर्क मॉडल श्रेणी के नाम से "Application_Model_" उपसर्ग कैसे छोड़ सकता हूं?

मैं इस पर अधिक नियंत्रण कैसे ले सकता हूं? उदाहरण के लिए, मैं मॉडल वर्गों को खुद नाम देना चाहता हूं - उदा। "Blah_ClassName" या शायद यहां तक ​​कि "कक्षा नाम" के रूप में।

(मुझे पता है कि मैं बाद में प्राप्त करने के लिए set_include_path() का उपयोग कर सकता हूं लेकिन यह "ज़ेंड-जैसा" नहीं है। मुझे लगता है कि ऑटोलोडर को कुछ प्रकार की परिवर्तन की आवश्यकता है - लेकिन इसे करने का सबसे अच्छा तरीका क्या है?

Autoloadernamespaces[] = "YourNamespace_" 

उत्तर

1

काम करने के लिए autoloader के लिए, आप 2 बातें करते हैं अपने include_path के लिए पथ जोड़ सकते हैं और यह भी एक autoloader नाम स्थान निर्दिष्ट करने के लिए की जरूरत है।

अपने बूटस्ट्रैप में:

protected function _initResourceLoader() 
{ 
    $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
     'namespace' => '', 
     'basePath' => APPLICATION_PATH, 
    )); 
    $resourceLoader->addResourceType('model', 'models/', 'Model'); 
    $resourceLoader->addResourceType('form', 'forms/', 'Form'); 
    $resourceLoader->addResourceType('service', 'services/', 'Service'); 

    return $resourceLoader; 
} 

लोड करने के लिए संसाधन:

$form = new Form_Article // loads from APPLICATION_PATH . /forms/Article.php 
$model = new Model_Article // loads from APPLICATION_PATH . /models/Article.php 
$service = new Service_Article // loads from APPLICATION_PATH . /services/Article.php 
संबंधित मुद्दे