PHP Autoload mit Namespace?

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
  • Ich nutze Namespaces und bekomme irgendwie keinen Autoload hin.
    Entweder bin ich zu müde, um nachzudenken oder einfach nur dumm.


    index.php

    PHP
    <?php
    	function __autoload($name) {
    		require_once($name) ; // sind im selben Verzeichnis
    	}
    
    	use classes\system\System;
    	$Sys = new System();


    class.system.php

    PHP
    <?php
    	namespace classes\system;
    
    	class System {
    
    		public function __construct() {
    			echo "Constructor\n";
    		}
    
    	}


    Edit:
    War wohl etwas verpeilt.
    Hier die Lösung:

    PHP
    function __autoload($name) {
    	$parts = explode('\\', $name);
    	require_once("class." . strtolower(end($parts)) . ".php");
    }

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

    2 Mal editiert, zuletzt von Allinone ()

  • Wenn man nun schon soweit gekommen ist Namespaces zu nutzen, sollte man sich überlegen, sich direkt nach dem PSR-4 Standard der FIG zu richten. Eine bekannte Implementation bietet der Symfony ClassLoader oder aber auch Composer, was ganz nebenbei noch Dependency Management bietet.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Wenn man nun schon soweit gekommen ist Namespaces zu nutzen, sollte man sich überlegen, sich direkt nach dem PSR-4 Standard der FIG zu richten. Eine bekannte Implementation bietet der Symfony ClassLoader oder aber auch Composer, was ganz nebenbei noch Dependency Management bietet.


    Bin nicht so der Fan von abweichenden Dingen, die nicht von mir sind. Ich habe mir die PDF auch nie durchgelesen. Was vietet Symfony denn, was für nich interessant sein könnte?

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Welche PDF?
    Hier findest du den PSR-4 Standard.
    Symfony bietet eine PSR-4 Implementation. Ich wiederhole mich irgendwie.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Das ist garantiert eine gute Idee. Warum auch standardisierte Techniken verwendet, um damit den Code etwas wiederverwertbarer und übersichtlicher zu machen, wenn man auch einfach seine eigene Art und Weise verwenden kann, die niemand außer dem Ersteller nachvollziehen kann und sicherlich auch die beste ist, da sich ja immerhin eine kluge Person darum Gedanken gemacht hat. Eine Person irrt nie, viele hingegen immer, so heißt es ja auch bekanntermaßen.


    Amen.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Das ist garantiert eine gute Idee. Warum auch standardisierte Techniken verwendet, um damit den Code etwas wiederverwertbarer und übersichtlicher zu machen, wenn man auch einfach seine eigene Art und Weise verwenden kann, die niemand außer dem Ersteller nachvollziehen kann und sicherlich auch die beste ist, da sich ja immerhin eine kluge Person darum Gedanken gemacht hat. Eine Person irrt nie, viele hingegen immer, so heißt es ja auch bekanntermaßen.


    Amen.


    Warum sollte man nicht seine eigene Art und Weise nutzen?
    Mein Code würde jeder verstehen, darauf achte ich auch als Programmierer.
    Du kannst das Framework ja gerne nutzen und mir es auch empfehlen (wofür ich dir auch danke) aber, ich möchte es nicht nutzen.
    Mein Problem ist ja auch erledigt, also kann der Thread auch gerne geschlossen werden.

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Es ist kein Framework. Ich lasse dich natürlich machen, was du willst und wie du das willst. Aber durch solche Misswahl der Begriffe zeigst du mir nur, dass du gar nicht auf meine Tipps eingegangen bist bzw. eingehen willst.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Es ist kein Framework. Ich lasse dich natürlich machen, was du willst und wie du das willst. Aber durch solche Misswahl der Begriffe zeigst du mir nur, dass du gar nicht auf meine Tipps eingegangen bist bzw. eingehen willst.


    Zitat

    Symfony is a set of reusable PHP components... ... and a PHP framework for web projects


    Quelle

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Richtig. Und ich bezog mich die ganze Zeit auf eine Komponente: Den Class Loader. Hiermit ist das Thema für mich auch geklärt, du scheinst das ja besser zu wissen.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Richtig. Und ich bezog mich die ganze Zeit auf eine Komponente: Den Class Loader. Hiermit ist das Thema für mich auch geklärt, du scheinst das ja besser zu wissen.


    Ich muss doch den Framework runterladen, um überhaupt den Class Loader zu nutzen, oder nicht?

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Ok lass es einfach klemmlampe hat mehr als vernünftig geholfen, wenn du dir jetzt selber keine Arbeit machst um dich zu erkundigen warum sollten wir dir hier helfen?


    Muss ich Symfone installieren, um die Komponente zu nutzen?

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Nein, das musst du nicht.
    Deshalb sind es ja "reusable PHP components", also wiederverwertbare Komponenten. Direkt darunter steht auch noch "[...] stand-alone components [...]".Und wie ist das Möglich? Richtig: Durch Standards, wie den PSR-4 Standard, den ich erwähnte.
    Dennoch rate ich dir noch immer zu Composer, da Dependency Manager und nicht nur Autoloader.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • ich selber nutze auch den PSR-0 autoloader und sehe keine nachteile warum also nicht?

  • Bei PSR-0 ist das Problem, dass er inzwischen veraltet ist :c

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Bei PSR-0 ist das Problem, dass er inzwischen veraltet ist :c



    ok das ist gut zu wissen :D hab mein ganzes CMS auch PSR-0 aufgebaut ich muss erstmal schauen ob ich das jetzt so locker easy umstellen kann.


  • Nein, das musst du nicht.
    Deshalb sind es ja "reusable PHP components", also wiederverwertbare Komponenten. Direkt darunter steht auch noch "[...] stand-alone components [...]".Und wie ist das Möglich? Richtig: Durch Standards, wie den PSR-4 Standard, den ich erwähnte.
    Dennoch rate ich dir noch immer zu Composer, da Dependency Manager und nicht nur Autoloader.


    Alles klar, dann werde ich mich mal schlau machen und den auch evtl. nutzen, danke dir dafür. :thumbup:

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).