Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Contao 3.5.3 und PHP 7.0.0RC2 #8018

Closed
netzarbeiter opened this issue Sep 15, 2015 · 9 comments
Closed

Contao 3.5.3 und PHP 7.0.0RC2 #8018

netzarbeiter opened this issue Sep 15, 2015 · 9 comments
Assignees
Labels
Milestone

Comments

@netzarbeiter
Copy link
Member

Beim Versuch Contao 3.5.3 unter PHP 7.0.0RC2 zum Laufen zu bringen, erhalte ich folgende Fehlermeldung:

PHP Fatal error:  Uncaught TypeError: Argument 1 passed to __exception() must be an instance of Exception, instance of Error given in /home/domain/public_html/system/helper/functions.php:87
Stack trace:
#0 [internal function]: __exception(Object(Error))
#1 {main}
  thrown in /home/domain/public_html/system/helper/functions.php on line 87
[15-Sep-2015 09:57:48 Europe/Zurich] PHP Fatal error:  Uncaught TypeError: Argument 1 passed to __exception() must be an instance of Exception, instance of Error given in /home/domain/public_html/system/helper/functions.php:87
Stack trace:
#0 [internal function]: __exception(Object(Error))
#1 {main}
  thrown in /home/domain/public_html/system/helper/functions.php on line 87

Wenn ich function __exception(Exception $e) durch function __exception($e) ersetze, erhalte ich folgende Fehlermeldung:

PHP Fatal error: Uncaught exception 'Error' with message 'Function name must be a string' thrown in /home/domain/public_html/system/initialize.php on line 243
#0 /home/domain/public_html/index.php(16): require()
#1 {main}
[15-Sep-2015 10:04:19 Europe/Zurich] PHP Fatal error:  Uncaught Error: Function name must be a string in /home/domain/public_html/system/modules/core/library/Contao/System.php:340
Stack trace:
#0 /home/domain/public_html/system/modules/core/templates/backend/be_error.html5(5): Contao\System::loadLanguageFile('exception')
#1 /home/domain/public_html/system/helper/functions.php(145): include('/home/domain/pu...')
#2 /home/domain/public_html/system/helper/functions.php(125): die_nicely('be_error', 'An error occurr...')
#3 /home/domain/public_html/system/helper/functions.php(109): show_help_message()
#4 [internal function]: __exception(Object(Error))
#5 {main}
  thrown in /home/domain/public_html/system/modules/core/library/Contao/System.php on line 340
@bschi
Copy link

bschi commented Oct 27, 2015

Dem Problem kann ich mich unter PHP 7.0.0RC5 anschließen. Es wäre toll, wenn das (zeitnah) gefixt werden würde. Offiziell soll die finale Version am 12.11.2015 erscheinen.

@BugBuster1701
Copy link
Contributor

In der Zeile 243 wird versucht über ein Hook eine Erweiterung zu laden die sich da registriert hat.
(initializeSystem Hook) Es wäre durchaus denkbar, dass die Erweiterung nicht kompatibel ist bzw. dessen Registrierung Syntax falsch ist.
Könnt Ihr das testen?

@bschi
Copy link

bschi commented Oct 27, 2015

Ich habe mich mittlerweile mal etwas durchdebuggt, es liegt größtenteils an der Art der Aufrufe, die nicht mehr kompatibel sind und die ich wie folgt abgeändert habe.

Beispielcode aktuell aus Contao Controller.php 483

static::importStatic($callback[0])->$callback[1]

Beispielcode neu Contao Controller.php 483

static::importStatic($callback[0])->{$callback[1]}

Wenn ich diese Art solcher Aufrufe ändere, natürlich auch in allen Erweiterungen, dann funktioniert bei mir schon mal lokal meine Frontend-Startseite wieder.

Dazu noch folgender Hinweis:

In PHP 7, the expression $person->$property['first'] is evaluated as {$person->$property}['first']. The interpreter will evaluate $person->$property first; consequently, the previous code example won't work in PHP 7 because $property is an array and cannot be converted to a string.
https://www.digitalocean.com/company/blog/getting-ready-for-php-7/

@bytehead
Copy link
Member

See also: contao/core-bundle#387

@BugBuster1701
Copy link
Contributor

Ach her je, das wird ja lustig mit PHP7.

@leofeyer leofeyer added this to the 3.5.5 milestone Oct 28, 2015
@leofeyer leofeyer self-assigned this Oct 28, 2015
@leofeyer
Copy link
Member

Behoben in 5cc52ed.

@bytehead
Copy link
Member

Thanks! 👍

@netzarbeiter
Copy link
Member Author

Herzlichen Dank für die Anpassungen.

Ich habe den «hotfix/3.5.5» mit der Offiziellen Contao Demo unter PHP 5.5.30 installiert.

Beim Umschalten auf PHP 7.0.0RC5 erhalte ich im ER folgende Fehlermeldung:

Function ("getExtensionList") is not a valid method for this service

Beim Umschalten auf PHP 5.6.14 erhalte ich im ER folgende Fehlermeldung:

Could not connect to host
[28-Oct-2015 14:24:36 Europe/Zurich] 
PHP Warning: SoapClient::__doRequest(): Peer certificate CN=`*.w1.vhost.io' did not match expected CN=`contao.org' in /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php on line 222
#0 [internal function]: __error(2, 'SoapClient::__d...', '/home/neuews/pu...', 222, Array)
#1 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://contao....', '', 2, 0)
#2 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(222): SoapClient->__call('getExtensionLis...', Array)
#3 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(222): SoapClient->getExtensionList(Array)
#4 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(1147): RepositoryBackendModule->getExtensionList(Array)
#5 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(85): RepositoryManager->getInstalledExtensions()
#6 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(153): RepositoryManager->listinsts(NULL)
#7 /home/domain/public_html/contao-3.5.4/system/modules/core/classes/BackendModule.php(98): RepositoryBackendModule->compile()
#8 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(72): Contao\BackendModule->generate()
#9 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(57): RepositoryBackendModule->generate()
#10 /home/domain/public_html/contao-3.5.4/system/modules/core/classes/Backend.php(423): RepositoryManager->generate()
#11 /home/domain/public_html/contao-3.5.4/system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('repository_mana...')
#12 /home/domain/public_html/contao-3.5.4/contao/main.php(20): Contao\BackendMain->run()
#13 {main}
[28-Oct-2015 14:24:36 Europe/Zurich] 
PHP Warning: SoapClient::__doRequest(): Failed to enable crypto in /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php on line 222
#0 [internal function]: __error(2, 'SoapClient::__d...', '/home/neuews/pu...', 222, Array)
#1 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://contao....', '', 2, 0)
#2 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(222): SoapClient->__call('getExtensionLis...', Array)
#3 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(222): SoapClient->getExtensionList(Array)
#4 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(1147): RepositoryBackendModule->getExtensionList(Array)
#5 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(85): RepositoryManager->getInstalledExtensions()
#6 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(153): RepositoryManager->listinsts(NULL)
#7 /home/domain/public_html/contao-3.5.4/system/modules/core/classes/BackendModule.php(98): RepositoryBackendModule->compile()
#8 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(72): Contao\BackendModule->generate()
#9 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(57): RepositoryBackendModule->generate()
#10 /home/domain/public_html/contao-3.5.4/system/modules/core/classes/Backend.php(423): RepositoryManager->generate()
#11 /home/domain/public_html/contao-3.5.4/system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('repository_mana...')
#12 /home/domain/public_html/contao-3.5.4/contao/main.php(20): Contao\BackendMain->run()
#13 {main}
[28-Oct-2015 14:24:36 Europe/Zurich] 
PHP Warning: SoapClient::__doRequest(): connect() failed: Unspecified error in /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php on line 222
#0 [internal function]: __error(2, 'SoapClient::__d...', '/home/neuews/pu...', 222, Array)
#1 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://contao....', '', 2, 0)
#2 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(222): SoapClient->__call('getExtensionLis...', Array)
#3 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(222): SoapClient->getExtensionList(Array)
#4 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(1147): RepositoryBackendModule->getExtensionList(Array)
#5 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(85): RepositoryManager->getInstalledExtensions()
#6 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(153): RepositoryManager->listinsts(NULL)
#7 /home/domain/public_html/contao-3.5.4/system/modules/core/classes/BackendModule.php(98): RepositoryBackendModule->compile()
#8 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryBackendModule.php(72): Contao\BackendModule->generate()
#9 /home/domain/public_html/contao-3.5.4/system/modules/repository/classes/RepositoryManager.php(57): RepositoryBackendModule->generate()
#10 /home/domain/public_html/contao-3.5.4/system/modules/core/classes/Backend.php(423): RepositoryManager->generate()
#11 /home/domain/public_html/contao-3.5.4/system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('repository_mana...')
#12 /home/domain/public_html/contao-3.5.4/contao/main.php(20): Contao\BackendMain->run()
#13 {main}

#7280

@leofeyer
Copy link
Member

This is actually an SNI problem (see #7548).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants