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, 5204 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
PHP
PHP Array SELECT möglich
gelöst Frage von rumbleDomPHP1 Kommentar

Hallo Gemeinde, warscheinlich sehe ich den Wald vor lauter Bäumen mal wieder nicht. Kurzer Tipp wäre daher hilfreich :) ...

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 ...

Neue Wissensbeiträge
CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 15 MinutenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 20 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 1 TagiOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung23 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...