Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Überladen von Methoden in PHP möglich?

Mitglied: Closed

Closed (Level 1) - Jetzt verbinden

23.10.2011 um 16:51 Uhr, 5380 Aufrufe, 7 Kommentare

Hi,

ich suche einen Weg zum Überladen von Methoden in PHP. Damit ist nicht die __call()-Methode gemeint, sondern ein Weg die standardmäßig definierten Methoden zu überschreiben.

Beispiel: standardmäßig wird file_get_contents($file) mit einem Parameter aufgerufen. Ist es möglich diese zu überschreiben, so dass die Funktion den gleichen Namen hat, aber zwei Parameter entgegennimmt? --> file_get_contents($file, $param2)

Ich brauche dies für eine Überprüfung auf gesetzte Rechte VOR dem eigentlichen Aufruf der Funktion.

Danke
Mitglied: msr972
23.10.2011 um 17:22 Uhr
Nein, es geht nur das Magic __call
Bitte warten ..
Mitglied: msr972
23.10.2011 um 19:14 Uhr
Noch ein kleiner Tipp, bau Dir doch nen Wrapper drum herum, das ist am einfachsten und ist vorallem anpassbarer...
Beispiel:

01.
 
02.
function w_fgc($file, $params = null) { 
03.
    if( $params === null ) { 
04.
        // normaler Aufruf von fgc ohne Rechteüberprüfung oder Parameter usw... 
05.
        // oder gleich return
06.
    } else if ( is_array($params)) { 
07.
        if( isset( $params['hasRight'] === true ) ) { 
08.
            // hier z.B. zusätzliche Validierung ob hasRights sein kann und so weiter 
09.
            // + dein fgc 
10.
        } else
11.
            // hier irgendwas anstellen lassen z.b. Protokollierung für Verstoß usw. 
12.
            return
13.
14.
15.
};
Das wäre jetzt der QnD Way wie ich es auf die Schnelle machen würde ohne OOP...
Bitte warten ..
Mitglied: Closed
23.10.2011 um 19:19 Uhr
das sieht eigentlich schon gar nicht schlecht aus. ich habe halt nach etwas gesucht, mit dem ich es vermeide alle funktionen neu zu schreiben und diese jedesmal extra zu definieren. aber wenn ich den methodenname als parameter übergebe, ist das ein ziemlich guter weg, etwas durchzusetzen.

vielen dank schonmal
Bitte warten ..
Mitglied: EvilMoe
23.10.2011 um 21:35 Uhr
In den Editoren gibt es nicht umsonst eine "Suchen und ersetzen" Funktion ;)
Bitte warten ..
Mitglied: Closed
23.10.2011 um 22:09 Uhr
Das ist nicht ansatzweise das, worum es geht...
Bitte warten ..
Mitglied: msr972
24.10.2011 um 09:39 Uhr
Zitat von Closed:
das sieht eigentlich schon gar nicht schlecht aus. ich habe halt nach etwas gesucht, mit dem ich es vermeide alle funktionen neu
zu schreiben und diese jedesmal extra zu definieren. aber wenn ich den methodenname als parameter übergebe, ist das ein
ziemlich guter weg, etwas durchzusetzen.

vielen dank schonmal

Hmm... Ich glaube zu verstehen, was Du vor hast, sprich eine Function schreiben ala:
01.
function wrapper_function( functionname, $paramsForFunctionname ) { 
02.
    // Body 
03.
}
Würde ich Dir persönlich nicht raten, da Du ja wieder in der Function switch'n/if'n müsstest, da Du ja dann z.B. file_get_content, file, file_set_content usw hättest, wo Du ja einen "Subbody" bräuchtest.
Ich würde tatsächlich für jeden Sonderfall einen Wrapper schreiben. So wie in meinem obigen Beispiel wie es ja nur für den fgc Fall wäre.
Wenn Du (warum auch immer) einen generellen Wrapper benutzt und da z.B. 30 Sonderfälle drin hast, könnte das auf die Performance der Skriptlaufzeit gehen, was wiederum kontraproduktiv wäre.

Ist das ganze denn eigentlich OOP oder prozeduraler Stil?
Bitte warten ..
Mitglied: Closed
24.10.2011 um 18:58 Uhr
derzeit plane ich es als OOP, da ich damit wesentlich flexibler bin.
es wäre halt wirklich genial, wenn die user sich nciht umgewöhnen müssten und das framework mit den "standardfunktionsaufrufen" verwenden könnten. das ginge aber erstens nur prozedural und zweitens bräuchte ich die rechte auch irgendwie als übergabeparameter, was schon wieder dazu führen würde, dass die funktion verändert wird. somit fällt das sicherlich raus.

ich wollte mir noch aspect oriented programming anschauen. hab aber noch gar keine ahnung in welche richtung das geht. bei einem groben überfliegen sah es eventuell hilfreich aus
Bitte warten ..
Ähnliche Inhalte
C und C++

Powershell Methode Compare-Object als C-Sharp Methode

gelöst Frage von mayho33C und C++4 Kommentare

Hallo @ All Ich beiße wieder mal an einem Problemchen und hoffe auf eure Unterstützung Ich möchte folgendes Powershell-Scriptchen ...

Webentwicklung

Wordpress Metatag Plugin um Seite nicht zu überladen

Frage von YannoschWebentwicklung

Hallo zusammen, folgendes Problem: Ich habe auf einer WP-Website EINE Seite für ca. 10.000 Produkte. Auf dieser Seite sind ...

PHP

PHP und Samba AD - auslesen Möglich?

Frage von thepandapiPHP3 Kommentare

Guten Tag Zusammen! ich schreibe zur zeit ein Server Dashboard, wo unserem Unternehmen Statistiken und Infos über den lokalen ...

Datenbanken

PHP MySQLI - Abfrage von Datensätzen nicht möglich

gelöst Frage von CreamyCewieDatenbanken2 Kommentare

Hallo, ich versuche gerade mittels PHP/MySQLi Datensätze aus meiner DB auszulesen. Mein Script: Hier erhalte ich jedoch folgenden Fehler: ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 12 StundenVerschlüsselung & Zertifikate2 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 2 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 2 TagenHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 2 TagenSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Heiß diskutierte Inhalte
Netzwerke
Hilfe bei der Planung meines Heimnetzwerks
Frage von DHD082Netzwerke14 Kommentare

Hallo zusammen, wir bauen gerade ein Einfamilienhaus, welches ich mit einem Heimnetzwerk ausstatten möchte. Da ich zwar auch in ...

Tipps & Tricks
Nagstamon und PRTG Monitoring
Frage von Der.ITlerTipps & Tricks13 Kommentare

Hallo Ihr, heute am Sonntag bin ich mal früh aufgestanden um mich mit dem Problem von Gestern zu beschäftigen. ...

Hardware
Sophos SG135 - Routing
Frage von Xaero1982Hardware13 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

Datenschutz
Gilt ein Ransomware-Befall als Datenpanne nach DSGVO?
Frage von MOS6581Datenschutz12 Kommentare

Moin Kollegen, wenn sich jemand Ransomware einfängt und dadurch bspw. Kundendaten verschlüsselt werden; gilt dies dann als meldepflichtige Datenpanne ...