PHP 5.3 ile Magento iş yapmak için ne gibi değişiklikler gerekiyor?

7 Cevap php

PHP 5.3 benim sunucu yükseltme ama Magento yüklemeniz olması gerekir ve ben Magento PHP 5.3 ile güzel oynamak değil biliyorum.

Ben değişiklikler (ne okudum itibaren) çok kapsamlı olmayacağını düşünüyorum. Ama ben SO kalabalığa o kadar açık olacağını düşündüm.

Herkes başarıyla bu yapılır mı? Eğer öyleyse, iyi not almak mı?

7 Cevap

Onlar uyumlu yapma sürecinde hala gibi görünüyor:

http://www.magentocommerce.com/boards/viewthread/54158/

Ben olsaydım, ben PHP5.3 yükseltme denemeden önce bir resmi açıklama için bekleyecekti

PHP 5.3 Magenkarşı 1.3.x çalıştırmak için, ilgili dosyaları aşağıdaki işlevi değiştirmeniz gerekir:

1> index.php

error_reporting(E_ALL | E_STRICT);

karşı

 error_reporting(E_ALL & E_STRICT & ~E_DEPRECATED);

/>
2> lib / Varien / Object.php

__karşıString 

karşı

 __invoke

/>
3> lib / Varien / Pear.php

error_reporting(E_ALL & ~E_NOTICE);

karşı

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

/>
4> downloader / Maged / Pear.php

error_reporting(E_ALL & ~E_NOTICE);

karşı

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

/> 5>

__karşıString

karşı

__invoke

/> 6> app \ code \ core \ Mage \ Core \ Controller \ Talebi \ Http.php

split

karşı

explode

/> 7>

split

karşı

explode

/> 8> app \ code \ core \ Mage \ Admin \ Model \ User.php

split

karşı

explode

For terminal user who just want karşı apply patch, i would recommend karşı use the following article: http://goivvy.com/blog/magenkarşı1.3fix/

You can get more info from following Magenkarşı Blog:
http://www.blog.magepsycho.com/how-karşı-run-magenkarşı-1-3-x-on-php-5-3/

Umarım bu yardımcı olur.

Değişiklikler kesinlikle kaynak varsayar daha karmaşık olacak gibi ben 5.3 ile çalışmak için Magento değiştirme ile rahatsız olmaz. PHP 5.3 ad alanları ile gelir ve autoloading mekanizması kesin değişecek. Bu bir sürü içten değiştirmek anlamına gelir. Uzun sınıfları adı gibi:

// Mage_Sales_Model_Order
Mage::getModel('sales/order');

sadece kendi ad yerine düzen olarak adlandırılan olacak:

// maybe something like this
Mage::getModel('order');
// or like this
$order = new Order();

/ / Magento ekip ad uygulamak nasıl bağlıdır

Yine PHP 5.3 ile Magenkarşı çalıştırmak için karar yoksa Peki, burada (sürüm 1.3.2.3 ile test) bunu nasıl:

1: index.php, çizgi 35, yaklaşık yerini

error_reporting(E_ALL | E_STRICT);

ile

error_reporting((E_ALL | E_STRICT) & !E_DEPRECATED)

(Nedeni: Magenkarşı sıklıkla PHP 5.3 önerilmiyor bölünmüş işlevini kullanır)

2: / lib / Varien / Object.php yılında, çizgi etrafında 484 değişiklik

public function ___karşıString(array $arrAttributes = array(), $valueSeparakarşır=',')

karşı

public function __invoke(array $arrAttributes = array(), $valueSeparakarşır=',')

(Nedeni: ben gerçekten bilmiyorum, ama işe yarıyor!)

Nic28 çözümü Re: 1.3.3.0 Magento yüklemesinde, ben de app / kod / çekirdek / Büyücü / Katalog / Model / Katman / Filtre / Price.php, hat 139 değişiklik çağırmak için __ __ toString yapmak için gerekli:

$key=.=taxReq->__toString(array(), '_');

Ben işlevi bölünmüş kullanın dosyaların uzun bir liste bulundu. Bu patlamaya tarafından değiştirilmesi gerekir. Işlev adı basit bir değişiklik yapacağız. Bu liste MagePsycho yukarıda yayınlanmıştır ne ekler. Indirici klasörü çok daha fazla dosya içerebilir, ben kullanılan arama ilk çizgidedir.

Search "\bspliti?\(" (68 hits in 54 files)
E:\magento\shop\app\code\core\Mage\Adminhtml\controllers\System\ConfigController.php (1 hits)
  Line 155:             foreach(split("\n", $e->getMessage()) as $message) {
E:\magento\shop\app\code\core\Mage\Adminhtml\Model\Observer.php (1 hits)
  Line 63:             $value = is_array($request->getPost($key)) ? $request->getPost($key) : split(',', $request->getPost($key));
E:\magento\shop\app\code\core\Mage\Adminhtml\Model\System\Config\Backend\Currency\Abstract.php (2 hits)
  Line 47:             return split(',', Mage::getConfig()->getNode('currency/options/allow', $this->getScope(), $this->getScopeId()));
  Line 59:         return split(',', Mage::getStoreConfig('system/currency/installed'));
E:\magento\shop\app\code\core\Mage\Adminhtml\Model\System\Config\Backend\Locale.php (1 hits)
  Line 49:         $values     = split(',', $this->getValue());
E:\magento\shop\app\code\core\Mage\Bundle\sql\bundle_setup\mysql4-install-0.1.0.php (1 hits)
  Line 162:     $applyTo = split(',', $installer->getAttribute('catalog_product', $field, 'apply_to'));
E:\magento\shop\app\code\core\Mage\Catalog\Model\Category.php (1 hits)
  Line 756:             $available = split(',', $available);
E:\magento\shop\app\code\core\Mage\Catalog\Model\Convert\Adapter\Product.php (2 hits)
  Line 561:             $websiteCodes = split(',', $importData['websites']);
  Line 592:                 $value = split(self::MULTI_DELIMITER, $value);
E:\magento\shop\app\code\core\Mage\Catalog\Model\Resource\Eav\Mysql4\Url.php (2 hits)
  Line 502:             $split = split('/', $category->getPath());
  Line 710:             $product->setCategoryIds(split(',', $product->getCategoryIds()));
E:\magento\shop\app\code\core\Mage\Catalog\sql\catalog_setup\mysql4-upgrade-0.7.39-0.7.40.php (1 hits)
  Line 35:     $applyTo = split(',', $installer->getAttribute('catalog_product', $field, 'apply_to'));
E:\magento\shop\app\code\core\Mage\CatalogRule\Model\Rule\Condition\Product.php (1 hits)
  Line 361:                 $value = split(',', $value);
E:\magento\shop\app\code\core\Mage\CatalogRule\sql\catalogrule_setup\mysql4-upgrade-0.7.1-0.7.2.php (1 hits)
  Line 44:         foreach (split(',', $r['store_ids']) as $storeId) {
E:\magento\shop\app\code\core\Mage\Customer\Model\Convert\Adapter\Customer.php (1 hits)
  Line 500:                 $value = split(self::MULTI_DELIMITER, $value);
E:\magento\shop\app\code\core\Mage\Downloadable\Helper\Download.php (2 hits)
  Line 210:                 $contentType = split('; ', $this->_urlHeaders['content-type']);
  Line 225:                 $contentDisposition = split('; ', $this->_urlHeaders['content-disposition']);
E:\magento\shop\app\code\core\Mage\Downloadable\sql\downloadable_setup\mysql4-install-0.1.0.php (1 hits)
  Line 46:     $applyTo = split(',', $installer->getAttribute('catalog_product', $field, 'apply_to'));
E:\magento\shop\app\code\core\Mage\Downloadable\sql\downloadable_setup\mysql4-upgrade-0.1.0-0.1.1.php (1 hits)
  Line 32: $applyTo = split(',', $installer->getAttribute('catalog_product', 'weight', 'apply_to'));
E:\magento\shop\app\code\core\Mage\Eav\Model\Convert\Adapter\Entity.php (1 hits)
  Line 107:                         $split = split('/', $k);
E:\magento\shop\app\code\core\Mage\Sales\Model\Order\Pdf\Abstract.php (1 hits)
  Line 157:         foreach (split("\|", $address) as $str) {
E:\magento\shop\lib\PEAR\SOAP\Parser.php (1 hits)
  Line 381:                 $this->message[$pos]['arrayOffset'] = split(',', substr($value, 1, strlen($value) - 2));
E:\magento\shop\lib\PEAR\SOAP\Transport\HTTP.php (2 hits)
  Line 272:         $headers = split("\r?\n", $headers);
  Line 278:             list($name, $value) = split(':', $value);
E:\magento\shop\lib\Varien\Db\Adapter\Pdo\Mysql.php (1 hits)
  Line 585:             $keyList[$v[1]] = split(',', str_replace($this->getQuoteIdentifierSymbol(), '', $v[2]));
E:\magento\shop\lib\Zend\Cache\Frontend\Page.php (1 hits)
  Line 316:                 $tmp = split(':', $headerSent);
E:\magento\shop\lib\Zend\Gdata\YouTube\VideoEntry.php (1 hits)
  Line 839:                 return split('(, *)|,', $keywordsString);
E:\magento\shop\lib\Zend\Service\Amazon.php (1 hits)
  Line 202:             $responseGroup = split(',', $options['ResponseGroup']);

Benim blog bu durumun örtülü var. Aslında Magento 1.3.x ve PHP 5.3.X. arasındaki uyumsuzlukları çözmek için nasıl açıklar Umarım işe yarar.