मैं PHP से कैसे अपना डेटाबेस बना सकता हूं, शायद डिफ़ॉल्ट डेटा डाल सकता हूं। वर्तमान में, मैं यूनिट टेस्ट के लिए व्यवहार का उपयोग करने का इरादा रख रहा हूं।मैं PHP में अपने डेटाबेस को फिर से कैसे बना सकता हूं (उदाहरण के लिए यूनिट परीक्षण के लिए)
मैं सिद्धांत 2, Zend फ्रेमवर्क 1.11, Zend_Test
उपयोग कर रहा हूँ इकाई परीक्षण
मैं CLI
doctrine orm:schema-tool:update --force
या
doctrine orm:schema-tool:drop --force
doctrine orm:schema-tool:create
मैं एक PHP प्रतिस्थापन रहा हूँ के लिए इस्तेमाल कर सकते हैं, अब तक this
लेकिन यह कुछ दिखाई देगा जैसे
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$classes = array(
$em->getClassMetadata('Entities\User'),
$em->getClassMetadata('Entities\Profile')
);
$tool->dropSchema($classes, \Doctrine\ORM\Tools\SchemaTool::DROP_DATABASE);
$tool->createSchema($classes);
ething और मैं नहीं वास्तव में चाहते हैं जब वे बदल सकते हैं विकास में, मॉडल वर्गों निर्दिष्ट करने के लिए खास तौर पर हो रही है। इसे केवल नीचे निर्दिष्ट सभी वर्गों से पढ़ा जाना चाहिए ... नीचे ... सीएलआई की तरह ही, आपको अपनी इच्छित कक्षाओं को निर्दिष्ट करने की आवश्यकता नहीं है?
$driverImpl = $config->newDefaultAnnotationDriver(array(realpath('../models')));
$config->setMetadataDriverImpl($driverImpl);
* (संदर्भ) * [डेटाबेस परीक्षण पर PHPUnit में अध्याय] (http://www.phpunit.de/manual/3.4/en/database.html) – Gordon
@ गॉर्डन, धन्यवाद, मुझे लगता है कि यूनिट का सही तरीका होगा मेरे मॉडल का परीक्षण करें, पीडीओ कनेक्शन की बजाय केवल एक चीज है, मैं सिद्धांत के कनेक्शन का उपयोग कैसे कर सकता हूं? मैं [सिद्धांत 2] का उपयोग कर रहा हूं (http: //www.doctrine-project।संगठन /) –
मैं अनिवार्य रूप से आपके जैसा ही सेटअप कर रहा हूं, सिवाय इसके कि मैं कक्षाओं के नामों की सूची को कॉन्फ़िगर से बाहर खींचता हूं, जो बनाए रखना आसान है। हालांकि, मुझे पता चला है कि हर टेस्ट में 'ड्रॉपस्केमा() 'और' createSchema()' को कॉल करना * वास्तव में महंगा है, और परीक्षणों का एक बड़ा सूट हमेशा चलाने के लिए होता है। PHPUnit जुड़नार का उपयोग करना बहुत तेज़ है। मुझे बेंजामिन के विस्तार को भी देखना होगा। –