CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
07.02.2009, 21:58:09
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
Autoload für Klassen
Ich beschäftige mich nun seit ein paar Wochen mit Klassen. Dabei kommt man um eine Funktion wie ein Autoload für Klassen ja eigentlich nicht herum.
Gefunden habe ich folgendes Beispiel.
PHP-Code:
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
$obj = new MyClass1();
$obj2 = new MyClass2();
?>
Laut Beschreibung versucht es die jeweilige Klasse anhand des Namens zu laden.
MyClass1 müsste demnach in der Datei 'MyClass1.php' sein.
Ruft sich diese Funktion nun durch $obj = new MyClass1(); selbst auf oder fehlt mir da noch etwas?
|
07.02.2009, 22:08:50
|
|
Anfänger
|
|
Registriert seit: Nov 2008
Alter: 35
Beiträge: 106
|
|
AW: Autoload für Klassen
wen der interpreter beim ausführe eine solchen scriptes auch eine klasse trifft die noch nicht bekannt ist, wird automatisch die autoload funktion aufgerufen und versucht die klasse nach zu laden, gelingt das wird das script ganz normal weiter verarbeitet, scheitert der versuch wird ein fehler erzeugt
|
07.02.2009, 22:09:11
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Autoload für Klassen
Zitat:
Zitat von urvater
Ruft sich diese Funktion nun durch $obj = new MyClass1(); selbst auf oder fehlt mir da noch etwas?
|
da fehlt nichts - durch new class wird die datei class.php geladen.
funktioniert's denn nicht?
cx
|
08.02.2009, 10:35:16
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Autoload für Klassen
Zitat:
Zitat von DokuLeseHemmung
Von __autoload halte ich nix!
|
für "überschaubare" projekte völlig ausreichend...
cx
|
08.02.2009, 11:17:25
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Autoload für Klassen
Danke erst einmal für die Antworten. Ich hatte es selbst noch nicht getestet ob es funktioniert, da meine Dateien zu den Klassen noch keiner gescheiten Namensgebung folgen.
Zur Zeit sind die Klassen, 4-5 Stück, noch recht überschaubar. Allerdings will ich das eine Projekt noch stark ausbauen. Es könnte also am Ende recht groß werden.
Meine eigentlich Frage ob diese automatisch aufgerufen wird ist ja beantwortet.
Den Hinweis von Docu werd ich mir aber trotzdem rein ziehen. Vielleicht kann ich so ja vermeiden später alles wieder umstellen zu müssen.
Danke allen für die Antworten.
|
08.02.2009, 11:25:40
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Autoload für Klassen
mit "überschaubar" habe ich auch die struktur der anwendung gemeint. wenn ich bspw. mit einem frontcontroller arbeite, ist die logik der anwendung überschaubarer, als wenn ich mit autarken klassen (im sinne ihrer ansprechbarkeit von aussen) jongliere.
cx
|
08.02.2009, 12:16:27
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Autoload für Klassen
Dann werd ich mir den Hinweis von Docu wohl noch mehr zu Gemüte ziehen müssen. Das Projekt wird hier ja von mir selbst geschrieben. Die eigentliche Bearbeitung erfolg überwiegend über meinen gewählten Editor selbst.
Frontend stehen nur die Möglichkeiten den DB Inhalt zu füllen, korrigieren oder ggf. zu löschen. Für mich ist es also entscheidend, daß ich beim Schreiben der Scripte nicht den Include vergessen kann oder durch Schreibfehler etc. auf die falsche Datei verweise.
Damit man nicht einen Include vergißt macht es ja auch keinen Sinn immer alle Klassen zu includieren. Ist ja nicht das Gelbe vom Ei, wenn man sie nicht benötigt.
Mein Hauptproblem liegt hierbei eigentlich bei dem Tool, was ich für meine Arbeit schreibe. Es ist eine Mischung aus einer Linksammlung, Abfragesystem und FAQ zu immer wieder kehrenden Problemen, die ich für den Support benötige.
Die Linksammlung ist eine Ansammlung auf "fremde" Abfragesysteme.
Die Abfragen auf meiner Seite beziehen sich auf statische und dynamische Listen, eigene Sammlungen von Meldungen, die ich als XML holen muß, und noch ein paar anderen Daten.
Die FAQ sind immer wieder kehrende Fehler, die auf Fehlern bei der Eingabe der User beruhen und alle paar Wochen gemacht werden. Somit hab ich immer die passende Antwort mit allen dafür benötigten Informationen.
Irgendwie gehört je nach Problem alles zusammen oder zumindest ein Teil der Daten wird auch an anderer Stelle benötigt.
Ich muß halt beim Erstellen dafür sorgen, was meine Kollegen versuchen könnten um an die gewünschte Information zu kommen.
Ich werd wohl noch viel lesen und testen müssen.
Zend, Ajax oder ein CMS kann ich nicht nutzen, da meistens die PHP und MySql Versionen zu veraltet sind und mir zu viele Rechte für die Installation fehlen. Die finanzielle bzw. rechtliche Seite mal aussen vor gelassen.
|
08.02.2009, 12:31:36
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Autoload für Klassen
Zitat:
Zitat von cortex
mit "überschaubar" habe ich auch die struktur der anwendung gemeint. wenn ich bspw. mit einem frontcontroller arbeite, ist die logik der anwendung überschaubarer, als wenn ich mit autarken klassen (im sinne ihrer ansprechbarkeit von aussen) jongliere.
cx
|
Kannst du mir das mal erklären?
Tolle Worte, aber der Kern der Aussage erschließt sich mir nicht.
Einfaches Beispiel: Ich möchte fremder Leute Klassen nutzen!
Und das geht z.B. so:
PHP-Code:
require_once('path-to-doctrine/lib/Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));
require_once('path-to-sensei/lib/Sensei.php');
spl_autoload_register(array('Sensei', 'autoload'));
Und schon geht nix mehr mit deiner __autoload()..
|
08.02.2009, 13:39:21
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: Autoload für Klassen
Zitat:
Zitat von DokuLeseHemmung
Tolle Worte[...]
|
ruhig brauner... du musst nicht gleich rumäppeln.
Zitat:
Zitat von DokuLeseHemmung
Einfaches Beispiel[...]
|
sorry, verstehe nicht, worauf du hinaus willst. meinst du das problem unterschiedlicher pfade ?
wenn ja: auch das lässt sich bewerkstelligen, wenn auch mir einigem aufwand: bsp. über eine auswertung der klassennamen und der zuweisung entsprechender pfadangaben.
darauf habe ich allerdings nicht abgezielt - ich sprach von einer "überschaubaren" app. wenn ich tausende fremd-module in höchst unterschiedlichen teilen der app benutze, empfinde ich persönlich das nicht mehr als "überschaubar". dass du das u.u. anders siehst, bleibt davon unberührt.
cx
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:25:47 Uhr.
|