Modify

Opened 10 years ago

Last modified 8 years ago

#549 new Neues Feature

autoload: Cannot redeclare class ....

Reported by: Volker Strähle Owned by: somebody
Priority: normal Milestone:
Component: Shop Version: 2.0.1.0
Keywords: Cc:
Blocked By: Blocking:

Description

  1. ich würde die Dateien nicht mit require einbinden, sondern mit include_once.
  1. Ich würde versuchen Fehler, die in den eingeschlossenen Dateien auftreten könnten abzufangen.

In Summe könnte das dann so aussehen:

foreach(auto_include(DIR_FS_ADMIN.'includes/extra/application_top_end/','php') as $file) {	
	try{
		include_once ($file);
	}
	catch(exception $e){
		trigger_error($e->getMessage(),E_ERROR);
	}
}
  1. Fehler wie "Fatal error: Cannot redeclare class Smarty in ..." können mit obigem Code nicht abgefangen werden. Hierzu würde ich gerne eine neue Systemfunktion sehen um Klassen zu deklarieren, welche mit class_exists() vorab prüft ob eine Klasse ggf schon geladen wurde. In meinen Augen notwedig für eine einwandfreie und problemlose Installation von Modulen.

Attachments (0)

Change History (4)

comment:1 by Ronald Parcinski, 10 years ago

zu 1) da es keine gleichnamigen Dateien im selben Verzeichnis geben kann ist das eigentlich egal, da jeder Hookpoint nur einmal vorkommt

zu 2) wäre zu überlegen

zu 3) gute Idee

comment:2 by Volker Strähle, 10 years ago

Nachtrag zu 3.:
Gilt auch für Funktionen im normalen Code. Lösung habe ich dafür bis jetzt aber keine.
Siehe: Doppelte Funktionsnamen abfangen?

Last edited 10 years ago by Torsten Riemer (previous) (diff)

comment:3 by Gerhard Waldemair, 10 years ago

Milestone: modified-shop-2.00modified-shop-2.10
Version: 2.02.10

comment:4 by Torsten Riemer, 8 years ago

Milestone: modified-shop-2.1.0.0

Modify Ticket

Action
as new The owner will remain somebody.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.