php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 11-07-2008, 19:51
BoFiaZ
 Registrierter Benutzer
Links : Onlinestatus : BoFiaZ ist offline
Registriert seit: Aug 2007
Beiträge: 72
BoFiaZ ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP Framework

Hallo,

ich möchte in Zukunft gerne intensiver mit einem PHP Framework arbeiten, dazu würde ich gerne wissen welche Frameworks Eure Favoriten sind.

Für mich über einen kurzen Erfahrungsbericht sehr freuen...
Danke für Eure Bemühungen...
Mit Zitat antworten
  #2 (permalink)  
Alt 12-07-2008, 01:30
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Mein Favorit ist zur Zeit das Zend Framework. Gut dokumentiert, sehr sauber aufgebaut, weitgehend ohne Zwänge, transparenter Entwicklungsprozess, kaum Systemvoraussetzungen u.v.m. Ich prophezeie ihm eine gesunde Zukunft.

ezComponents ist auch nicht schlecht. Man merkt zwar, dass es nicht auf dem Reißbrett geplant wurde sondern als Basis von ezPublish gewachsen ist und von Kundenbedürfnissen beeinflußt wurde. Aber dafür bietet es eben auch Funktionen, die dem ZF noch fehlen. Die Doku ist ebenfalls gut und wegen der längeren Geschichte gibt es mehr Literatur.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-07-2008, 11:08
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Ja, das ZF dürfte das am weitesten fortgeschrittene und das universellste FW sein...

Aber: Wo viel Sonne, da auch viel Schatten!
Zitat:
weitgehend ohne Zwänge
1. Modrewrite steht nicht auf jedem System zur Verfühgung.
2. Nicht jedes System erlaubt include_path Änderungen

Und was ich am "scheußligsten" finde:
Der Autoload wird durch die bergeweise eingestreuten require adabsurdum geführt!
__________________
Wir werden alle sterben

Geändert von combie (12-07-2008 um 11:28 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 12-07-2008, 12:24
netsnake
 Newbie
Links : Onlinestatus : netsnake ist offline
Registriert seit: Apr 2006
Beiträge: 79
netsnake ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gibt es zum Zend Framework denn ein gutes Anfänger-Tutorial? Denn das 30-Minuten-QuickStart von Zend ist unter aller Sau...
__________________
| netsnake | www.netsnake.net |
Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG
Mit Zitat antworten
  #5 (permalink)  
Alt 12-07-2008, 13:06
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von combie
1. Modrewrite steht nicht auf jedem System zur Verfühgung.
2. Nicht jedes System erlaubt include_path Änderungen

Und was ich am "scheußligsten" finde:
Der Autoload wird durch die bergeweise eingestreuten require adabsurdum geführt!
zu 1: ZF funktioniert auch ohne mod_rewrite. Der Router kommt auch mit URLs in der Form /index.php/module/controller/action klar und alle anderen Komponenten brauchen sowieso kein mod_rewrite. Andere Frameworks können übrigens auch keine 100%igen URLs, wenn der Server nicht mitspielt.
zu 2: Welches System? set_include_path() funktioniert doch immer!?

Autoload ist ein Gimmick für den Anwender. Was das Framework intern macht, kann dir völlig egal sein. Übrigens finde ich es richtig, dass sich das Framework nicht aufs eigene Autoloading verläßt - eine Abhängigkeit weniger.


http://framework.zend.com/manual/de/introduction.html
http://knowfree.net/2008/02/24/zend-...k-in-action.kf
http://www.zftutorials.com/
Mit Zitat antworten
  #6 (permalink)  
Alt 12-07-2008, 15:30
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
eine Abhängigkeit weniger.
Nee..
Eine mehr.
Autoload und require ist wie gleichzeitig Fahrad und Auto fahren. Eins reicht doch.

Zitat:
set_include_path() funktioniert doch immer!?
Es gibt ja noch die verbotenen Funktionen.
Und http://bugs.php.net/bug.php?id=41561
Dann tuts der set_include_path() auch nicht.
(naja, wer hat schon noch kleiner 5.2.4)
__________________
Wir werden alle sterben

Geändert von combie (12-07-2008 um 15:32 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 12-07-2008, 15:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Man kann PHP - gerade über disabled_functions - total verkrüppeln. Aber wer macht das schon? Ich habe noch nie ein System gesehen, bei dem man den include_path nicht frei definieren konnte.

Den Vergleich Autoloading/require mit Auto/Fahrrad verstehe ich nicht. Sehe da keinerlei Parallelen. Kannst du das genauer erklären?
Mit Zitat antworten
  #8 (permalink)  
Alt 13-07-2008, 08:51
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Ich habe noch nie ein System gesehen, bei dem man den include_path nicht frei definieren konnte.
Ich schon!
1. wegen dem Bug
2. abgeschaltete ini_set()


Der alte Weg: (das schwergewichtige Auto)
1. Include_Path setzen
2. in jeder Klassendatei alle evtl. irgendwann mal benötigten Interfaces, Exceptions und Sonstigen Parentklassen per require_once "relativerpath"; laden

Die Vorteile des Autoload: (das leichte, im gedrängel flinke, Fahrrad)
1. es werden nur die wirklich benötigten Klassen geladen
2. Kein include_path nötig
3. keine vorbereiteten require(ausser der eine für den Autoload selber)

Das Fahrrad, kannst du ins Auto stecken, aber umgekehrt wirds sinnfrei.

Im ZFW:
Werden beide Wege benutzt. Die eingestreuten require_once zwingen, völlig unnötig, zum setzen des include_path. Es werden Klassen geladen, welche gar nicht gebraucht werden.

Der Schluß:
Entweder ist das ein historisch gewachsenes System, mit Altlasten am Bein, oder die Zendis haben es einfach nicht geschnallt. Mit einem Wort: Inkonsequent/halbgar. Meiner bescheidenen Meinung nach, sollte man sich auf einen der beiden Wege konzentrieren.

----------
Für den Fall, dass du meinst, ich hätte es nicht geschnallt:
http://combie.de/packages/
Da findest du Links zu modernen Paketen. Das einzige Paket welches diesen Zwitterweg benutzt, ist das ZFW.

Das soll jetzt keine Rede gegen das ZFW gewesen sein. Es legt nur den Finger auf eine Schwachstelle.
__________________
Wir werden alle sterben

Geändert von combie (13-07-2008 um 08:55 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 13-07-2008, 11:37
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn du neu einsteigst und dir das 30 minuten tutorial nicht ausreichend war, dann ist es empfehlenswert sich nochmal mit mvc im allgemeinen zu beschäftigen.

Die restliche Anwendung wird sich denke ich von selbst erklären, das du vor der framework nutzung einmal den weg über oop programmierung gegangen bist, sehe ich jetzt mal als selbstverständlich an.
__________________
Webdesign und Webentwicklung - Plunix.de
Mit Zitat antworten
  #10 (permalink)  
Alt 13-07-2008, 12:15
netsnake
 Newbie
Links : Onlinestatus : netsnake ist offline
Registriert seit: Apr 2006
Beiträge: 79
netsnake ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nun ja, bei mir werden die Codebeispiele total versetzt angezeigt, das Prinzip verstehe ich sehr gut und das beste Tutorial zu diesem Thema ist ein Screencast, zu finden auf http://mitchellhashimoto.com/zend-framework-tutorials ich bin sehr begeistert davon, und er erklärt super, wie man alles zum laufen bringt.
Danke @onemorenerd
__________________
| netsnake | www.netsnake.net |
Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG
Mit Zitat antworten
  #11 (permalink)  
Alt 13-07-2008, 13:48
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@combie: Ich kann mich nur wiederholen. Autoloading ist ein Feature für den Programmierer. Er muss weniger Code tippen und sich keine Gedanken über die Verzeichnisstruktur des Frameworks machen.
ZF verläßt sich nicht auf das eigene Autoloading. Du kannst die Klasse Zend_Loader löschen und das ZF funktioniert trotzdem. Das ist doch eindeutig eine Abhängigkeit weniger. Sinnlos, aber wahr.

Autoloading ist nur ein Mechanismus in PHP, der greift, wenn eine Klasse nicht bekannt ist. Statt sofort einen Fehler zu werfen, wird der Autoloader gerufen und hinterher noch einmal geschaut, ob die Klasse nun vorhanden ist.
Also ist Autoloading nur die Reduktion der früher üblichen Folge von Inkludieren und Instanzieren. Das Inkludieren findet aber trotzdem statt, nämlich im Autoloader.
Das Autoloading klappt beim ZF nur, weil der Loader so passend zur Ordnerstruktur geschrieben ist, in der das ZF daher kommt. Bei deinem Paket ist es nicht anders. Wenn ich Ordner umbenenne oder verschiebe, scheitert dein Autoloader wie jeder andere auch.
Fazit: Autoloading funktioniert immer nur aufgrund irgendwelcher Konventionen.

Die Konvention beim ZF ist, dass alles im Ordner "Zend" liegt. Deshalb kann das Framework intern mit require_once "Zend/..." arbeiten. Ist gar kein Unterschied, solange der Ordner "Zend" im include_path ist.
Genau das selbe gilt doch für dein Paket. Wenn ich den Autoloader registriere, aber den Rest des Pakets außerhalb des include_path ablege, geht auch bei dir nichts mehr.

Der Vergleich mit Auto und Fahrrad hinkt übrigens sehr. Autoloading ist langsamer in der Ausführung. Aber im Autoloading steckt ein require. Das wäre ein Auto im Fahrrad ... vergessen wir das lieber.

Zitat:
Im ZFW:
Werden beide Wege benutzt. Die eingestreuten require_once zwingen, völlig unnötig, zum setzen des include_path.
AFAIK wird nur require benutzt. Autoloading ist für den Anwender gedacht, ZF selbst benutzt es nicht. (Jetzt wiederhole ich mich schon wieder, sorry.)
Wenn du den include_path nicht setzen kannst, musst du den Ordner "Zend" eben in den include_path verschieben oder chdir()'en. Das selbe gilt für dein Paket. Aber dieser Fall ist wirklich praxisfremd. Mag sein, dass es möglich ist, aber mir ist noch kein System unter gekommen, bei dem der include_path nicht veränderbar war.
Zitat:
Es werden Klassen geladen, welche gar nicht gebraucht werden.
Wirklich? Wo denn? Und könnte man es vermeiden? Dann weise doch bitte die Entwickler darauf hin. Ich bin sicher, dass es keine Absicht ist.

Zitat:
Der Schluß: ... Mit einem Wort: Inkonsequent/halbgar. Meiner bescheidenen Meinung nach, sollte man sich auf einen der beiden Wege konzentrieren.
Wird doch gemacht. Man "konzentriert" sich auf require. Punkt.
Außerdem stellt man einen Autoloader zu Verfügung. Wenn sich der Anwendungsentwickler also lieber auf den anderen Weg konzentrieren möchte, kann er das tun. Beides funktioniert problemlos zusammen, require innerhalb des ZF (wo alles in einem Ordner liegt) und Autoloading in der Anwendung (wenn sich der Entwickler an die Konventionen hält).

Das soll übrigens auch keine Rede pro ZF sein. Es hat auch seine Schwächen.

Geändert von onemorenerd (13-07-2008 um 13:56 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 13-07-2008, 14:49
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Wirklich? Wo denn? Und könnte man es vermeiden?
Mit Autoload!

Pdf.php wird Zend/Memory.php geladen, obwohl nicht unbedingt benötigt.


Mail.php
Eine der require Kaskaden. Wobei einem da auffällt, dass sie von ihren sonstigen Prinzip abweichen.

z.B. in der loader.php kommt 10mal (ohne gezählt zu haben) require_once 'Zend/Exception.php'; vor. Das ist mindestens redundant aber sicherlich unschön.
Das findet sich vergleichbar an 1000 Ecken in der Klassensammlung so.

Die Abweichung:
Teilweise: (Mail.php)
Ettliche male:
PHP-Code:
  require_once 'Zend/Mail/Exception.php';
            throw new 
Zend_Mail_Exception('Return-Path Header set twice'); 
Aber in public function setDate($date = null) wird KEIN require vor der dem throw gesetzt.
Warum wird da abgewichen und damit der Autoload genutzt?

Auch findet sich in Mail.php ein doppeltes require_once 'Zend/Mail/Transport/Abstract.php';


In Memory.php wird dann die Exception in der require Kaskade geladen. Also wieder ein Abweichen vom Prinzip.
Und dieses sieht aus wie im Kindergarten: (factory Methode)
PHP-Code:
require_once str_replace('_'DIRECTORY_SEPARATOR$backendClass) . '.php'
-----------
Weg 1: in einer require Kaskade alle evtl. benötigten Klassen laden
Weg 2: Ein require an dem Punkt, wo die Klasse benötigt wird
Weg 3: es dem autolader überlassen, den Kram ranzuschaffen

Und was machen die ZFWler?
Die mischen die drei Wege nach belieben, so dass kein System mehr zu erkennen ist.

----------
Nee....
Unausgegoren
teilweise fehlerhaft
redundant und damit fehlerträchtig

Die können sich selbst nicht an ihre eigenen Prinzipien halten.

-----------
Zitat:
Autoloading ist langsamer in der Ausführung.
In der absoluten Aussage, ist es schlicht falsch!
Die ganzen eingestreuten require fressen Parsezeit und Rechenzeit. Wie schnell require ist, hängt auch von der Anzahl Pfade im includepath ab.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #13 (permalink)  
Alt 13-07-2008, 14:58
netsnake
 Newbie
Links : Onlinestatus : netsnake ist offline
Registriert seit: Apr 2006
Beiträge: 79
netsnake ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jetzt kloppen sich die pros... ^^ olé!
__________________
| netsnake | www.netsnake.net |
Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG
Mit Zitat antworten
  #14 (permalink)  
Alt 13-07-2008, 15:16
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Das ist noch lange kein kloppen!!
Evtl. Haarspaltereien, auch ein Kopf vor Kopf stehen, aber kein kloppen...
Das geht anders!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #15 (permalink)  
Alt 13-07-2008, 15:22
netsnake
 Newbie
Links : Onlinestatus : netsnake ist offline
Registriert seit: Apr 2006
Beiträge: 79
netsnake ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Beispiel? Link? *lechz*
__________________
| netsnake | www.netsnake.net |
Für Rechtschreibfehler, Denkfehler, Tippfehler, usw. übernehme ich KEINE HAFTUNG
Mit Zitat antworten
Antwort

Lesezeichen


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/92898-php-framework.html
Erstellt von For Type Datum
Backlink Analyse zftutorials.com SEOkicks Backlinkcheck This thread Refback 22-03-2015 16:19

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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.

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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:32 Uhr.