Добрый день!
Ошибка после установки сборки:
Exception Object
(
    [message:protected] => Strict Notice: Only variables should be passed by reference  in /home/ebidet/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php on line 2841
    [string:private] => 
    [code:protected] => 0
    [file:protected] => /home/ebidet/public_html/app/code/core/Mage/Core/functions.php
    [line:protected] => 245
    [trace:private] => Array
        (
            [0] => Array
                (
                    [file] => /home/ebidet/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php
                    [line] => 2841
                    [function] => mageCoreErrorHandler
                    [args] => Array
                        (
                            [0] => 2048
                            [1] => Only variables should be passed by reference
                            [2] => /home/ebidet/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php
                            [3] => 2841
                            [4] => Array
                                (
                                    [fieldName] => main_table.store_id
                                    [condition] => Array
                                        (
                                            [gt] => 0
                                        )
                                    [conditionKeyMap] => Array
                                        (
                                            [eq] => {{fieldName}} = ?
                                            [neq] => {{fieldName}} != ?
                                            [like] => {{fieldName}} LIKE ?
                                            [nlike] => {{fieldName}} NOT LIKE ?
                                            [in] => {{fieldName}} IN(?)
                                            [nin] => {{fieldName}} NOT IN(?)
                                            [is] => {{fieldName}} IS ?
                                            [notnull] => {{fieldName}} IS NOT NULL
                                            [null] => {{fieldName}} IS NULL
                                            [gt] => {{fieldName}} > ?
                                            [lt] => {{fieldName}} < ?
                                            [gteq] => {{fieldName}} >= ?
                                            [lteq] => {{fieldName}} <= ?
                                            [finset] => FIND_IN_SET(?, {{fieldName}})
                                            [regexp] => {{fieldName}} REGEXP ?
                                            [from] => {{fieldName}} >= ?
                                            [to] => {{fieldName}} <= ?
                                            [seq] => 
                                            [sneq] => 
                                        )
                                    [query] => 
                                )
                        )
                )
            [1] => Array
                (
                    [file] => /home/ebidet/public_html/lib/Varien/Data/Collection/Db.php
                    [line] => 483
                    [function] => prepareSqlCondition
                    [class] => Varien_Db_Adapter_Pdo_Mysql
                    [type] => ->
                    [args] => Array
                        (
                            [0] => main_table.store_id
                            [1] => Array
                                (
                                    [gt] => 0
                                )
                        )
                )
            [2] => Array
                (
                    [file] => /home/ebidet/public_html/lib/Varien/Data/Collection/Db.php
                    [line] => 414
                    [function] => _getConditionSql
                    [class] => Varien_Data_Collection_Db
                    [type] => ->
                    [args] => Array
                        (
                            [0] => main_table.store_id
                            [1] => Array
                                (
                                    [gt] => 0
                                )
                        )
                )
            [3] => Array
                (
                    [file] => /home/ebidet/public_html/lib/Varien/Data/Collection/Db.php
                    [line] => 385
                    [function] => _translateCondition
                    [class] => Varien_Data_Collection_Db
                    [type] => ->
                    [args] => Array
                        (
                            [0] => main_table.store_id
                            [1] => Array
                                (
                                    [gt] => 0
                                )
                        )
                )
            [4] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Store/Collection.php
                    [line] => 84
                    [function] => addFieldToFilter
                    [class] => Varien_Data_Collection_Db
                    [type] => ->
                    [args] => Array
                        (
                            [0] => main_table.store_id
                            [1] => Array
                                (
                                    [gt] => 0
                                )
                        )
                )
            [5] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Store/Collection.php
                    [line] => 166
                    [function] => setWithoutDefaultFilter
                    [class] => Mage_Core_Model_Resource_Store_Collection
                    [type] => ->
                    [args] => Array
                        (
                        )
                )
            [6] => Array
                (
                    [file] => /home/ebidet/public_html/lib/Varien/Data/Collection.php
                    [line] => 741
                    [function] => load
                    [class] => Mage_Core_Model_Resource_Store_Collection
                    [type] => ->
                    [args] => Array
                        (
                        )
                )
            [7] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/local/Df/Catalog/Model/Setup/2/23/5.php
                    [line] => 25
                    [function] => getIterator
                    [class] => Varien_Data_Collection
                    [type] => ->
                    [args] => Array
                        (
                        )
                )
            [8] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/local/Df/Catalog/Model/Setup/2/23/5.php
                    [line] => 7
                    [function] => processCategories
                    [class] => Df_Catalog_Model_Setup_2_23_5
                    [type] => ->
                    [args] => Array
                        (
                        )
                )
            [9] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/local/Df/Catalog/sql/df_catalog_setup/mysql4-data-upgrade-1.0.0-2.23.5.php
                    [line] => 11
                    [function] => process
                    [class] => Df_Catalog_Model_Setup_2_23_5
                    [type] => ->
                    [args] => Array
                        (
                        )
                )
            [10] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php
                    [line] => 624
                    [args] => Array
                        (
                            [0] => /home/ebidet/public_html/app/code/local/Df/Catalog/sql/df_catalog_setup/mysql4-data-upgrade-1.0.0-2.23.5.php
                        )
                    [function] => include
                )
            [11] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php
                    [line] => 392
                    [function] => _modifyResourceDb
                    [class] => Mage_Core_Model_Resource_Setup
                    [type] => ->
                    [args] => Array
                        (
                            [0] => data-upgrade
                            [1] => 
                            [2] => 2.23.5
                        )
                )
            [12] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php
                    [line] => 289
                    [function] => _installData
                    [class] => Mage_Core_Model_Resource_Setup
                    [type] => ->
                    [args] => Array
                        (
                            [0] => 2.23.5
                        )
                )
            [13] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php
                    [line] => 269
                    [function] => applyDataUpdates
                    [class] => Mage_Core_Model_Resource_Setup
                    [type] => ->
                    [args] => Array
                        (
                        )
                )
            [14] => Array
                (
                    [file] => /home/ebidet/public_html/app/code/core/Mage/Core/Model/App.php
                    [line] => 351
                    [function] => applyAllDataUpdates
                    [class] => Mage_Core_Model_Resource_Setup
                    [type] => ::
                    [args] => Array
                        (
                        )
                )
            [15] => Array
                (
                    [file] => /home/ebidet/public_html/app/Mage.php
                    [line] => 684
                    [function] => run
                    [class] => Mage_Core_Model_App
                    [type] => ->
                    [args] => Array
                        (
                            [0] => Array
                                (
                                    [scope_code] => 
                                    [scope_type] => store
                                    [options] => Array
                                        (
                                        )
                                )
                        )
                )
            [16] => Array
                (
                    [file] => /home/ebidet/public_html/index.php
                    [line] => 87
                    [function] => run
                    [class] => Mage
                    [type] => ::
                    [args] => Array
                        (
                            [0] => 
                            [1] => store
                        )
                )
        )
)
Error in file: "/home/ebidet/public_html/app/code/local/Df/Catalog/sql/df_catalog_setup/mysql4-data-upgrade-1.0.0-2.23.5.php" - Strict Notice: Only variables should be passed by reference  in /home/ebidet/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php on line 2841
#0 /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')
#1 /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(392): Mage_Core_Model_Resource_Setup->_modifyResourceDb('data-upgrade', false, '2.23.5')
#2 /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(289): Mage_Core_Model_Resource_Setup->_installData('2.23.5')
#3 /home/ebidet/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(269): Mage_Core_Model_Resource_Setup->applyDataUpdates()
#4 /home/ebidet/public_html/app/code/core/Mage/Core/Model/App.php(351): Mage_Core_Model_Resource_Setup::applyAllDataUpdates()
#5 /home/ebidet/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#6 /home/ebidet/public_html/index.php(87): Mage::run('', 'store')
#7 {main}
						
						
						
					
					
				Only variables should be passed by reference in lib/Varien/Db/Adapter/Pdo/Mysql.php on line 2841
14.12.2014 10:58
						Это дефект ядра Magento Community Edition.
В указанной интерпетатором PHP дефектной точке программы расположен код:
Согласно спецификации языка PHP, функция key принимает свой единственный параметр по ссылке:
Согласно спецификации языка PHP по ссылке можно передавать лишь переменные, выражения new и ссылки, возвращаемые другими функциями:
Об этом (в упрощённой, не совсем точной и корректной форме) и предупреждает диагностическое сообщение: «Only variables should be passed by reference» (сообщение не совсем точно, потому что ради краткости не упоминает о редко используемых возможностях передавать по ссылке вызовы new и ссылки, возвращаемые другими функциями).
В то же время дефектный программный код Magento Community Edition ошибочно передаёт функции key не переменную, а результат выполнения другой функции array_intersect_key.
Согласно своей спецификации результат функции array_intersect_key не обозначен как ссылка (не указан символ амперсанда; обратите внимание, что в приведённой выше спецификации функции key у параметра символ амперсанда указан):
Поэтому вызов функции key с параметром в качестве вызова функции array_intersect_key является нарушением спецификации языка PHP.
На мой взгляд, разработчикам интерпретатора PHP стоило бы доработать интерпретатор и изменить спецификацию, чтобы подобные вызовы можно было осуществлять, однако в настоящее время интерпретатор PHP работает именно так, и это задокументировано, поэтому дефектным является именно поведение Magento, а не интерпретатора PHP.
Для устранения данного сбоя надо разбить общую дефектную операцию на две: сначала присвоить некой переменной результат работы функции array_intersect_key, а затем передать эту переменную в качестве параметра функции key.
Например:
						
					
					
				В указанной интерпетатором PHP дефектной точке программы расположен код:
$key = key(array_intersect_key($condition, $conditionKeyMap));
Согласно спецификации языка PHP, функция key принимает свой единственный параметр по ссылке:
mixed key ( array &$array )
Согласно спецификации языка PHP по ссылке можно передавать лишь переменные, выражения new и ссылки, возвращаемые другими функциями:
Об этом (в упрощённой, не совсем точной и корректной форме) и предупреждает диагностическое сообщение: «Only variables should be passed by reference» (сообщение не совсем точно, потому что ради краткости не упоминает о редко используемых возможностях передавать по ссылке вызовы new и ссылки, возвращаемые другими функциями).
В то же время дефектный программный код Magento Community Edition ошибочно передаёт функции key не переменную, а результат выполнения другой функции array_intersect_key.
Согласно своей спецификации результат функции array_intersect_key не обозначен как ссылка (не указан символ амперсанда; обратите внимание, что в приведённой выше спецификации функции key у параметра символ амперсанда указан):
array array_intersect_key ( array $array1 , array $array2 [, array $... ] )
Поэтому вызов функции key с параметром в качестве вызова функции array_intersect_key является нарушением спецификации языка PHP.
На мой взгляд, разработчикам интерпретатора PHP стоило бы доработать интерпретатор и изменить спецификацию, чтобы подобные вызовы можно было осуществлять, однако в настоящее время интерпретатор PHP работает именно так, и это задокументировано, поэтому дефектным является именно поведение Magento, а не интерпретатора PHP.
Для устранения данного сбоя надо разбить общую дефектную операцию на две: сначала присвоить некой переменной результат работы функции array_intersect_key, а затем передать эту переменную в качестве параметра функции key.
Например:
$array_intersect_key = array_intersect_key($condition, $conditionKeyMap); $key = key($array_intersect_key);

 Вход
 Вход Регистрация
 Регистрация Помощь
 Помощь

 
			
			

