php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.01.2005, 11:20  
Gast
 
Beiträge: n/a
Standard Eure Ideen sind gefragt: eigene Funktionen verwalten

Guten Tag zusammen

Ihr kennt das sicherlich auch, ihr arbeitet an einem Projekt welches zu beginn noch relativ klein erscheint. Ihr habt euch eine Datei (API) angelegt in der Ihr die golbal verwendeten eigenen Funktionen reinscriptet. Irgendwann stellt Ihr fest dass die Datei nun mehrere 1000de Zeilen hat, und ca. 30 unterschiedliche Funktionen besitzt.

Unschön, denn zum einen ist das ding richtig unübersichtlich, und zum anderen wird bei jedem Seitenaufruf eine 100kb Datei includet und geparst, auch wenn 80% davon nicht benötigt werden.

Ich bin jetzt am überlegen wie man das ding umbaut, und zwar so dass immer alle Funktionen verfügbar sind, aber nur bei "gebrauch" geladen werden.

Community, lasst doch mal hören ob Ihr da irgendwelche Vorschläge oder Kreative Ideen habt.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.01.2005, 11:38  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Eure Ideen sind gefragt: eigene Funktionen verwalten

Zitat:
Zitat von error404
eine Datei (API)
du weißt, was eine API ist?


nunja.
definitiv keineprofifrage, da du anscheinend noch nicht hinter den sinn der OOP gekommen bist.

ich verschiebe das mal in richtung fortgeschrittenenforum.


Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines Profis. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21431

moved to
imported_Ben ist offline   Mit Zitat antworten
Alt 07.01.2005, 12:03  
Erfahrener Benutzer
 
Registriert seit: 17.08.2004
Beiträge: 213
carrib befindet sich auf einem aufstrebenden Ast
Standard

Wenn Du Deine Funktionsaufrufe über einen eigenen Wrapper vornimmst, in diesem mit function_exists() prüfst ob eine Funktionen verfügbar ist oder nicht, bei Bedarf das Script mit der Funktiondefinition einbindest und diese mit call_user_func() ausführst, müsste das vom Prinzip her reichen.

//EDIT: umformuliert
Es stellt sich aber die Frage ob das nicht mehr Resourcen frisst. Abgesehen davon müsstest Du für die Parameterübergabe einiges ändern, da Dein Wrapper zwar eine variable Anzahl an Parametern entgegennehmen kann, es jedoch an der Übergabe dieser an die entsprechende Funktion scheitern wird.
carrib ist offline   Mit Zitat antworten
Alt 07.01.2005, 12:04  
Gast
 
Beiträge: n/a
Standard

Ach ja, so ist das eben.
Ich bin neu hier im Forum, aber nicht neu in PHP. Muss hier auch erst ma "schnuppern"


Zitat:
du weißt, was eine API ist?
Öhm, ja... das war aber nicht die frage von mir, oder? Aber du hast recht, war nen dummes Beispiel an der Stelle.

Zitat:
nunja.
definitiv keineprofifrage, da du anscheinend noch nicht hinter den sinn der OOP gekommen bist.
nana, das sind jetzt aber Unterstellungen!
-> der Sinn von OOP ist mir denke ich geläufig ... nicht zuletzt da ich meine Projetke seit langer Zeit ObjektOrientiertProgrammiere ...

Aber darum gehts ja in meiner Frage nicht.. oder?
KLar, die Einleitung ist sicherlich etwas übertrieben, und nicht so alltäglich. Mein vorhaben war ledeglich das bisschen nett zu verpacken.

Zitat:
Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines Profis. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21431
Hab ich gelesen, und imaginär virtuell abgehakt. Es ist eben wie immer auslegungssache.

-------------------------------------------------------------
Lassen wirs gut sein, es wäre nämlich immer noch interresant eure IDEEN dazu hören. (PS: Ich werds dann auch in ein Objet verpacken *g*)
  Mit Zitat antworten
Alt 07.01.2005, 12:12  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

eben. und ich bin einer derer, die hier entscheiden, welche auslegung gewählt wird.
hört sich doof an .. ist aber so.

eventuell hast du carribs antwort nicht gelesen, da ich fast zeitgleich gepostet habt .. schau sie dir doch mal an.

grüße ben.
imported_Ben ist offline   Mit Zitat antworten
Alt 07.01.2005, 12:20  
Gast
 
Beiträge: n/a
Standard

carrib

Zitat:
Abgesehen davon müsstest Du für die Parameterübergabe einiges ändern, da Dein Wrapper keine variable Anzahl an Parametern übernehmen kann
Das ist eben genau eines der Probleme, denn einige Funktionen arbeiten mit func_get_arg() .

Prinzpiell müsste im aufgerufenen Script (welches u.U. mehrere Includes besitzt) geprüft werden welche funktionen aufgerufen werden. (ähnlich wie get_defined_functions() nur eben mit "benötigten" und nicht mit "vorhandenen" ). Das reinladen der einzelnen Funktion, ich nenn das jetzt mal salopp "BAUSTEINE" müsste natürlich(!?) auf Fileebene passieren, da ichs sonst gleich belassen kann wies ist

@ben
jap, die Antworten haben sich ein bisschen überschnitten.
  Mit Zitat antworten
Alt 07.01.2005, 12:57  
Erfahrener Benutzer
 
Registriert seit: 17.08.2004
Beiträge: 213
carrib befindet sich auf einem aufstrebenden Ast
Standard

Ich hab' es umformuliert. Das Entgegennehmen einer variablen Parameteranzahl ist nicht das Problem, das eigentliche Problem wird die Übergabe an die eigentliche Funktion bzw. call_user_func() sein.
carrib ist offline   Mit Zitat antworten
Alt 07.01.2005, 13:39  
Gast
 
Beiträge: n/a
Standard

Klar, hab dich da schon verstanden Ignorier einfach diese Aussage : "denn einige Funktionen arbeiten mit func_get_arg() ."

Zählt die Ausrede ... "ich sollt mich mal wieder schlafen" ?

Mal ernsthaft. Auf diese Weise würde das funktionieren, indem man einfach noch ne schöne Klasse drum rum baut. Aber ob das ding wirklich performant ist, und ob sich da das ganze umbauen lohnt... bin mir nicht sicher. Der ansatz ist gut. Abgefahren wäre z.B wenn man den Inhalt (also Quelltext) innerhalb der funktionen rausschmeisst und in eine neue php Datei speichert. Dann würde der Dateizugriff immer nur erfolgen wenn dieser Benötigt wird, also bei einem Funktionsaufruf. also zb.

Code:
function foo() {
  include_once(func_bar.php);
}
Wenn ich jetzt mal spinne, könnte man da auch noch ein schickes versionsmanagement einbauen, z.B. für spätere updates mir rollback.

So richtig schick ist das ganze aber nicht. Vorallem nicht zum weiterentwickeln.

Wie gesagt, es gibt viele wege nach rom, ich such den schönsten
  Mit Zitat antworten
Alt 07.01.2005, 16:11  
Gast
 
Beiträge: n/a
Standard

ok, ich hab keine Erfahrung mit PHP und nur ne Idee, von der ich nciht weiß, ob sie realisierbar ist (Ben, darfst gerne meckern, es würde keinen interessieren :P ).
Nunja.
Kann du nicht irgendwie nachgucken, welche Funktionen im Script aufgerufen werden und dann nur diejenigen includen? Notfalls müsste das doch mit mysql zu bewerkstelligen sein, oder?
  Mit Zitat antworten
Alt 07.01.2005, 22:27  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von error404
Abgefahren wäre z.B wenn man den Inhalt (also Quelltext) innerhalb der funktionen rausschmeisst und in eine neue php Datei speichert. Dann würde der Dateizugriff immer nur erfolgen wenn dieser Benötigt wird, also bei einem Funktionsaufruf.)
stellt sich die frage, was schneller ist - ein include, einer sehr großen datei oder sehr viele includes, sehr kleiner dateien.
ich denke, filezugriffe kosten mehr als das parsen.
ist von mir nur eine vermutung, du kannst dir ja einen benchmark dazu schreiben.

Zitat:
Zitat von error404
Irgendwann stellt Ihr fest dass die Datei nun mehrere 1000de Zeilen hat, und ca. 30 unterschiedliche Funktionen besitzt.

...

-> der Sinn von OOP ist mir denke ich geläufig ... nicht zuletzt da ich meine Projetke seit langer Zeit ObjektOrientiertProgrammiere ...
irgendwie beißen sich deine aussagen.

Zitat:
Zitat von dejot
Kann du nicht irgendwie nachgucken, welche Funktionen im Script aufgerufen werden und dann nur diejenigen includen? Notfalls müsste das doch mit mysql zu bewerkstelligen sein, oder?
ja, das ist gut - vor jedem funktionsaufruf noch eine db-anfrage.
oder was meinst du, dejot - dein nick klingt so ähnlich wie ...
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Templatesystem mit Funktionen und Variablen drin? BartTheDevil89 PHP Tipps 2008 6 01.07.2008 09:32
rekursive Funktionen ?? usima PHP Tipps 2008 2 04.05.2008 11:25
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
eine Variable für alle Funktionen definieren Wing PHP Tipps 2007 16 24.06.2007 21:02
Funktionen überprüfen und Grafik Funktionen hans.karl2 PHP Tipps 2006 10 31.07.2006 20:08
Funktionen in Funktionen - ist das gut? Schneckenkind PHP Tipps 2006 23 10.06.2006 13:39
funktionen trinity PHP Tipps 2006 4 27.05.2006 13:21
Klassen, Funktionen und Session Fatal Error PHP Tipps 2006 1 15.03.2006 19:05
Globale Variabeln in Funktionen finerip PHP Tipps 2007 3 28.11.2005 16:00
Suche Leute mit Ideen oder ein Team das Unterstützung sucht. Beitragsarchiv 11 12.07.2005 13:02
mehrere funktionen in einer php-datei, seperat anwählen PHP Tipps 2005 13 20.03.2005 16:12
[Erledigt] mysql funktionen nicht verfügbar. PHP-Fortgeschrittene 7 07.11.2004 10:38
mySQL Funktionen TheSkaterFriend Off-Topic Diskussionen 1 20.06.2004 13:36
Funktionen Erklärung TheSkaterFriend PHP Tipps 2004 14 11.06.2004 22:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
content, php script vorschläge verwalten, php klasse ohne eigene funktion, funktion verwalten

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.