Fortschritte beim AMS

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

  • @Twilight
    Dankeschön, ist auch ein riesen Projekt.

    @Psycho
    Leider kann ich dir darüber noch keinen genauen Stand sagen. Ich schwanke noch zwischen mehreren Modellen. Auf der einen Seite möchte ich natürlich mit meiner Arbeit Geld verdienen, aber auf der anderen Seite denke ich halt das es viele Alternativen gibt, und mein System noch keiner so richtig kennt.

    Eine Variante wäre natürlich auch zusagen ok der Core ist OpenSource und man kann dann Module dazukaufen wenn man möchte, aber ist mit diesem Geschäftsmodell wirklich Geld zuverdienen?

    All das sind Fragen die ich mir schon gestellt habe, welche ich aber immer weiter nach hinten dränge da ich noch genug andere Sachen machen muss :D

    Vielleicht könnt ihr ja mal eure Meinung dazu preisgeben was ihr gerne hättet. Wobei ich da jetzt schon weiß das es OpenSource sein soll :D

    Lieben Gruß
    Ulle
  • Hallo liebe Community,
    aufgrund diverser Ungereimtheiten mit dem jetzigen Framework und auf Wunsch von eines Mitentwicklers aus meinem Team, werden wir die Entwicklung des AMS auf Basis von Obullo einstellen. Für unser vorhaben ist Obullo ein wenig too Much und aus diesem Grund haben wir nach ca 12 Stunden intensiven Diskutieren uns dazu entschlossen das AMS Framework komplett selbst zu entwickeln. Natürlich ist das wieder mal ein Schritt zurück als nach vorne, aber ich denke noch sind wir in einem Stadium in welchem wir so etwas noch machen können.

    Aber damit ihr natürlich nicht zu kurz kommt, hier mal der aktuelle Fortschritt:

    Quellcode

    1. /***
    2. @ToDo
    3. - Erstellen der Ordner Struktur nach folgendem Schema
    4. - System
    5. - core
    6. - helpers
    7. - libs
    8. - Modules
    9. - Module 1
    10. - controllers
    11. - models
    12. - views
    13. - libs
    14. - lang
    15. - helper
    16. - Application
    17. - controllers
    18. - models
    19. - views
    20. - lang
    21. - libs
    22. - helpers
    23. - Überprüfen nach vorhanden dateien in 3 Ordnern ( Module, Application, System )
    24. - Caching erweitern
    25. - komplettes Datei Caching für den Template Parser
    26. - umschreiben der Cache Config in eine Configdatei
    27. - Allgemeine Configdateien
    28. - mehrere Datenbankverbindungen
    29. @ Was kann das Framework bis jetzt
    30. - HMVC Request ( Request::load('ControllerName', 'MethodeName', 'Arguments'))
    31. - Layouts laden
    32. - Viewfiles laden
    33. - Undeklarierte Variablen an das Layout und die View übergeben
    34. - Klassen Autoloading
    35. @ Was muss noch besprochen werden
    36. - Umbau des Systems auf Namespaces
    37. - Allgemeiner Aufbau und Struktur im System
    38. ***/
    Alles anzeigen


    Wie ihr seht kann man aus diesem kleinem Überblick erkennen, das es doch schon relativ weit voran geschritten ist. Dafür das ich erst seit gestern an diesem System sitze. Aber man erkennt auch das ich noch sehr durcheinander Codiere da ich die Ordnerstruktur noch nicht umgesetzt habe. Aber die Priorität war erst einmal das HMVC Design Pattern um zusetzten und zum laufen zu bekommen. Die Struktur folgt im laufe der nächsten Tage.

    Ich hoffe ihr habt dennoch weiterhin Interesse an diesem Projekt und unterstützt mich mit Feedback zu meinen Posts.

    Lieben Gruß
    Ulle
  • Hallo liebe Community,
    ja es ist soweit, ich benötige mal Hilfe :D
    Und zwar dreht es sich um eine Autoloader Klasse welche ich für das Framework geschrieben habe.

    Falls jemand hier ist der auch schon mal eine Autoloader Klasse auf Basis von Namespaces und einer 3 Ordner Struktur gebaut hat, der soll doch bitte hier mal fix drüber schauen und mir mal sagen ob da irgendwo ein Fehler ist, oder ob man das so lassen könnte. Funktionieren tut die Klasse, nur bin ich mir nicht sicher ob meine Idee korrekt ist.

    Quellcode

    1. [FONT=Verdana]namespace System\Core;[/FONT]
    2. [FONT=Verdana]
    3. [/FONT]
    4. [FONT=Verdana]class ClassNotFoundException extends \Exception {}[/FONT]
    5. [FONT=Verdana]
    6. [/FONT]
    7. [FONT=Verdana]class Autoloader {[/FONT]
    8. [FONT=Verdana]
    9. [/FONT]
    10. [FONT=Verdana] public static function register()[/FONT]
    11. [FONT=Verdana] {[/FONT]
    12. [FONT=Verdana] // Neuen Autoloader registrieren[/FONT]
    13. [FONT=Verdana] spl_autoload_register(__NAMESPACE__ . '\Autoloader::load');[/FONT]
    14. [FONT=Verdana]
    15. [/FONT]
    16. [FONT=Verdana] // Start des Autoloaders dokumentieren[/FONT]
    17. [FONT=Verdana] Common::log_me('[Debug]: {' . date("d.m.Y") . ' - ' . date("H:i") . ' Uhr} Autloader wurde gestartet');[/FONT]
    18. [FONT=Verdana] }[/FONT]
    19. [FONT=Verdana]
    20. [/FONT]
    21. [FONT=Verdana] /**[/FONT]
    22. [FONT=Verdana] * Die Load Klasse ist eine der wichtigsten Klassen im System[/FONT]
    23. [FONT=Verdana] * Sie regelt das Handling mit den Klassenaufrufen ohne das[/FONT]
    24. [FONT=Verdana] * im System eine Datei "händisch" includet werde muss.[/FONT]
    25. [FONT=Verdana] * [/FONT]
    26. [FONT=Verdana] * Dabei werden alle Hauptverzeichnisse mit eingebunden[/FONT]
    27. [FONT=Verdana] * man kann also einen Aufruf machen der wie folgt aussieht:[/FONT]
    28. [FONT=Verdana] * Application\Helper\Html::br(3);[/FONT]
    29. [FONT=Verdana] * Dies hätte nun zufolge das das System automatisch in den [/FONT]
    30. [FONT=Verdana] * Application Ordner wechselt, und dort im Verzeichnis Helper[/FONT]
    31. [FONT=Verdana] * nach einer Datei und Klasse Html sucht. [/FONT]
    32. [FONT=Verdana] * In dieser Datei wird dann die Methode br aufgerufen und ausgegeben.[/FONT]
    33. [FONT=Verdana] *[/FONT]
    34. [FONT=Verdana] * @todo Bessere Fehlerausgabe bei einer nicht vorhandenen Klasse oder Methode[/FONT]
    35. [FONT=Verdana] * @author Florian Uhlrich[/FONT]
    36. [FONT=Verdana] * @version 0.1[/FONT]
    37. [FONT=Verdana] * @param $class Klassen Name wird automatisch eingetragen und muss nicht aufegrufen werden[/FONT]
    38. [FONT=Verdana] * @return Includierte Klasse inklusive des Methoden Aufrufs[/FONT]
    39. [FONT=Verdana] **/[/FONT]
    40. [FONT=Verdana] public static function load($class)[/FONT]
    41. [FONT=Verdana] {[/FONT]
    42. [FONT=Verdana] // Klassennamen sofort kleinschreiben[/FONT]
    43. [FONT=Verdana] $class = strtolower($class);[/FONT]
    44. [FONT=Verdana]
    45. [/FONT]
    46. [FONT=Verdana] // Eventuelle vorangegangene Backslahes entfernen[/FONT]
    47. [FONT=Verdana] $file = ltrim($class, '\\');[/FONT]
    48. [FONT=Verdana]
    49. [/FONT]
    50. [FONT=Verdana] $file_array = explode('\\', $file);[/FONT]
    51. [FONT=Verdana]
    52. [/FONT]
    53. [FONT=Verdana] // Root Namespace entfernen[/FONT]
    54. [FONT=Verdana] array_shift($file_array);[/FONT]
    55. [FONT=Verdana]
    56. [/FONT]
    57. [FONT=Verdana] if( strpos($file, 'system') === 0)[/FONT]
    58. [FONT=Verdana] {[/FONT]
    59. [FONT=Verdana] $file = implode(DS, $file_array);[/FONT]
    60. [FONT=Verdana] $path = BASE . $file . '.php';[/FONT]
    61. [FONT=Verdana] }[/FONT]
    62. [FONT=Verdana]
    63. [/FONT]
    64. [FONT=Verdana] if( strpos($file, 'application') === 0)[/FONT]
    65. [FONT=Verdana] {[/FONT]
    66. [FONT=Verdana] $file = implode(DS, $file_array);[/FONT]
    67. [FONT=Verdana] $path = APP . $file . '.php';[/FONT]
    68. [FONT=Verdana] }[/FONT]
    69. [FONT=Verdana]
    70. [/FONT]
    71. [FONT=Verdana] if( strpos($file, 'module') === 0)[/FONT]
    72. [FONT=Verdana] {[/FONT]
    73. [FONT=Verdana] $file = implode(DS, $file_array);[/FONT]
    74. [FONT=Verdana] $path = MOD . $file . '.php';[/FONT]
    75. [FONT=Verdana] }[/FONT]
    76. [FONT=Verdana]
    77. [/FONT]
    78. [FONT=Verdana] if( file_exists($path))[/FONT]
    79. [FONT=Verdana] {[/FONT]
    80. [FONT=Verdana] include $path;[/FONT]
    81. [FONT=Verdana] }[/FONT]
    82. [FONT=Verdana] else[/FONT]
    83. [FONT=Verdana] {[/FONT]
    84. [FONT=Verdana] throw new ClassNotFoundException($path . ' konnte nicht gefunden werden.');[/FONT]
    85. [FONT=Verdana] } [/FONT]
    86. [FONT=Verdana] }[/FONT]
    87. [FONT=Verdana]
    88. [/FONT]
    89. [FONT=Verdana] public static function add_namespace(){}[/FONT]
    90. [FONT=Verdana]
    91. [/FONT]
    92. [FONT=Verdana] public static function add_class(){}[/FONT]
    93. [FONT=Verdana]
    94. [/FONT]
    95. [FONT=Verdana]}[/FONT][FONT=Verdana]
    96. [/FONT]
    Alles anzeigen

    Vielen Dank schon jetzt

    Lieben Gruß
    Ulle

    Edit: kann das leider nicht im PHP Block schreiben, der formatiert das dann falsch.
  • Kein Problem,
    es sei aber noch gesagt das ich das AMS nur noch alleine Entwickle und es deshalb natürlich länger dauern kann als geplant.
    Ich werde aber die Tage ein paar Tutorials fertig mit einem Framework was ich nun nutze. Vielleicht hat ja jemand dann Lust am AMS mitzuwirken :D

    Lieben Gruß
    Ulle