1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Install
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Environment installer
29: *
30: * @category Mage
31: * @package Mage_Install
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Install_Model_Installer_Env extends Mage_Install_Model_Installer_Abstract
35: {
36: public function __construct() {}
37:
38: public function install()
39: {
40: if (!$this->_checkPhpExtensions()) {
41: throw new Exception();
42: }
43: return $this;
44: }
45:
46: protected function _checkPhpExtensions()
47: {
48: $res = true;
49: $config = Mage::getSingleton('install/config')->getExtensionsForCheck();
50: foreach ($config as $extension => $info) {
51: if (!empty($info) && is_array($info)) {
52: $res = $this->_checkExtension($info) && $res;
53: }
54: else {
55: $res = $this->_checkExtension($extension) && $res;
56: }
57: }
58: return $res;
59: }
60:
61: protected function _checkExtension($extension)
62: {
63: if (is_array($extension)) {
64: $oneLoaded = false;
65: foreach ($extension as $item) {
66: if (extension_loaded($item)) {
67: $oneLoaded = true;
68: }
69: }
70:
71: if (!$oneLoaded) {
72: Mage::getSingleton('install/session')->addError(
73: Mage::helper('install')->__('One of PHP Extensions "%s" must be loaded.', implode(',', $extension))
74: );
75: return false;
76: }
77: }
78: elseif (!extension_loaded($extension)) {
79: Mage::getSingleton('install/session')->addError(
80: Mage::helper('install')->__('PHP extension "%s" must be loaded.', $extension)
81: );
82: return false;
83: }
84: else {
85: /*Mage::getSingleton('install/session')->addError(
86: Mage::helper('install')->__("PHP Extension '%s' loaded", $extension)
87: );*/
88: }
89: return true;
90: }
91: }
92: